mirror of https://github.com/CIRCL/AIL-framework
chg: [API + item library] add a way to check if a user can access the API + item import (use item_basic)
parent
eec579c5d4
commit
6dc8f0a79d
|
@ -26,6 +26,20 @@ def get_item_filepath(item_id):
|
||||||
filename = os.path.join(PASTES_FOLDER, item_id)
|
filename = os.path.join(PASTES_FOLDER, item_id)
|
||||||
return os.path.realpath(filename)
|
return os.path.realpath(filename)
|
||||||
|
|
||||||
|
def get_item_date(item_id, add_separator=False):
|
||||||
|
l_directory = item_id.split('/')
|
||||||
|
if add_separator:
|
||||||
|
return '{}/{}/{}'.format(l_directory[-4], l_directory[-3], l_directory[-2])
|
||||||
|
else:
|
||||||
|
return '{}{}{}'.format(l_directory[-4], l_directory[-3], l_directory[-2])
|
||||||
|
|
||||||
|
# # TODO: add an option to check the tag
|
||||||
|
def is_crawled(item_id):
|
||||||
|
return item_id.startswith('crawled')
|
||||||
|
|
||||||
|
def get_item_domain(item_id):
|
||||||
|
return item_id[19:-36]
|
||||||
|
|
||||||
def add_item_parent_by_parent_id(parent_type, parent_id, item_id):
|
def add_item_parent_by_parent_id(parent_type, parent_id, item_id):
|
||||||
parent_item_id = get_obj_id_item_id(parent_type, parent_id)
|
parent_item_id = get_obj_id_item_id(parent_type, parent_id)
|
||||||
if parent_item_id:
|
if parent_item_id:
|
||||||
|
|
|
@ -7,10 +7,10 @@ import redis
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/'))
|
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/'))
|
||||||
import ConfigLoader
|
import ConfigLoader
|
||||||
|
import item_basic
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages/'))
|
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages/'))
|
||||||
import Date
|
import Date
|
||||||
import Item
|
|
||||||
#import Tag
|
#import Tag
|
||||||
|
|
||||||
config_loader = ConfigLoader.ConfigLoader()
|
config_loader = ConfigLoader.ConfigLoader()
|
||||||
|
@ -335,8 +335,8 @@ class Correlation(object):
|
||||||
r_serv_metadata.sadd('item_{}_{}:{}'.format(self.correlation_name, subtype, item_id), obj_id)
|
r_serv_metadata.sadd('item_{}_{}:{}'.format(self.correlation_name, subtype, item_id), obj_id)
|
||||||
|
|
||||||
# domain
|
# domain
|
||||||
if Item.is_crawled(item_id):
|
if item_basic.is_crawled(item_id):
|
||||||
domain = Item.get_item_domain(item_id)
|
domain = item_basic.get_item_domain(item_id)
|
||||||
self.save_domain_correlation(domain, subtype, obj_id)
|
self.save_domain_correlation(domain, subtype, obj_id)
|
||||||
|
|
||||||
def delete_item_correlation(self, subtype, obj_id, item_id, item_date):
|
def delete_item_correlation(self, subtype, obj_id, item_id, item_date):
|
||||||
|
@ -371,13 +371,13 @@ class Correlation(object):
|
||||||
if obj2_type == 'domain':
|
if obj2_type == 'domain':
|
||||||
self.save_domain_correlation(obj2_id, subtype, obj_id)
|
self.save_domain_correlation(obj2_id, subtype, obj_id)
|
||||||
elif obj2_type == 'item':
|
elif obj2_type == 'item':
|
||||||
self.save_item_correlation(subtype, obj_id, obj2_id, Item.get_item_date(obj2_id))
|
self.save_item_correlation(subtype, obj_id, obj2_id, item_basic.get_item_date(obj2_id))
|
||||||
|
|
||||||
def delete_obj_relationship(self, subtype, obj_id, obj2_type, obj2_id):
|
def delete_obj_relationship(self, subtype, obj_id, obj2_type, obj2_id):
|
||||||
if obj2_type == 'domain':
|
if obj2_type == 'domain':
|
||||||
self.delete_domain_correlation(obj2_id, subtype, obj_id)
|
self.delete_domain_correlation(obj2_id, subtype, obj_id)
|
||||||
elif obj2_type == 'item':
|
elif obj2_type == 'item':
|
||||||
self.delete_item_correlation(subtype, obj_id, obj2_id, Item.get_item_date(obj2_id))
|
self.delete_item_correlation(subtype, obj_id, obj2_id, item_basic.get_item_date(obj2_id))
|
||||||
|
|
||||||
def create_correlation(self, subtype, obj_id, obj_meta):
|
def create_correlation(self, subtype, obj_id, obj_meta):
|
||||||
res = self.sanythise_correlation_types([subtype], r_boolean=True)
|
res = self.sanythise_correlation_types([subtype], r_boolean=True)
|
||||||
|
|
|
@ -9,7 +9,6 @@ from hashlib import sha256
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages'))
|
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages'))
|
||||||
import Correlation
|
import Correlation
|
||||||
import Item
|
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/'))
|
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/'))
|
||||||
import ConfigLoader
|
import ConfigLoader
|
||||||
|
|
|
@ -45,11 +45,7 @@ def get_item_filepath(item_id):
|
||||||
return item_basic.get_item_filepath(item_id)
|
return item_basic.get_item_filepath(item_id)
|
||||||
|
|
||||||
def get_item_date(item_id, add_separator=False):
|
def get_item_date(item_id, add_separator=False):
|
||||||
l_directory = item_id.split('/')
|
return item_basic.get_item_date(item_id, add_separator=add_separator)
|
||||||
if add_separator:
|
|
||||||
return '{}/{}/{}'.format(l_directory[-4], l_directory[-3], l_directory[-2])
|
|
||||||
else:
|
|
||||||
return '{}{}{}'.format(l_directory[-4], l_directory[-3], l_directory[-2])
|
|
||||||
|
|
||||||
def get_source(item_id):
|
def get_source(item_id):
|
||||||
return item_id.split('/')[-5]
|
return item_id.split('/')[-5]
|
||||||
|
@ -270,9 +266,8 @@ def get_item_list_desc(list_item_id):
|
||||||
desc_list.append( {'id': item_id, 'date': get_item_date(item_id), 'tags': Tag.get_obj_tag(item_id)} )
|
desc_list.append( {'id': item_id, 'date': get_item_date(item_id), 'tags': Tag.get_obj_tag(item_id)} )
|
||||||
return desc_list
|
return desc_list
|
||||||
|
|
||||||
# # TODO: add an option to check the tag
|
|
||||||
def is_crawled(item_id):
|
def is_crawled(item_id):
|
||||||
return item_id.startswith('crawled')
|
return item_basic.is_crawled(item_id)
|
||||||
|
|
||||||
def is_onion(item_id):
|
def is_onion(item_id):
|
||||||
is_onion = False
|
is_onion = False
|
||||||
|
@ -290,7 +285,7 @@ def is_item_in_domain(domain, item_id):
|
||||||
return is_in_domain
|
return is_in_domain
|
||||||
|
|
||||||
def get_item_domain(item_id):
|
def get_item_domain(item_id):
|
||||||
return item_id[19:-36]
|
return item_basic.get_item_domain(item_id)
|
||||||
|
|
||||||
def get_domain(item_id):
|
def get_domain(item_id):
|
||||||
item_id = item_id.split('/')
|
item_id = item_id.split('/')
|
||||||
|
|
|
@ -6,7 +6,6 @@ import sys
|
||||||
import redis
|
import redis
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages'))
|
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'packages'))
|
||||||
import Item
|
|
||||||
import Correlation
|
import Correlation
|
||||||
|
|
||||||
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/'))
|
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib/'))
|
||||||
|
|
|
@ -604,5 +604,14 @@ def import_json_item():
|
||||||
res = importer.api_import_json_item(data_json)
|
res = importer.api_import_json_item(data_json)
|
||||||
return Response(json.dumps(res[0]), mimetype='application/json'), res[1]
|
return Response(json.dumps(res[0]), mimetype='application/json'), res[1]
|
||||||
|
|
||||||
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
||||||
|
@restApi.route("api/v1/ping", methods=['GET'])
|
||||||
|
@token_required('user')
|
||||||
|
def v1_ping():
|
||||||
|
return Response(json.dumps({'status': 'pong'}), mimetype='application/json'), 200
|
||||||
|
|
||||||
# ========= REGISTRATION =========
|
# ========= REGISTRATION =========
|
||||||
app.register_blueprint(restApi, url_prefix=baseUrl)
|
app.register_blueprint(restApi, url_prefix=baseUrl)
|
||||||
|
|
Loading…
Reference in New Issue