def get_description(): object_id = request.args.get('object_id') object_id = object_id.split(';') # unpack object_id # # TODO: put me in lib if len(object_id) == 3: object_type = object_id[0] type_id = object_id[1] correlation_id = object_id[2] elif len(object_id) == 2: object_type = object_id[0] type_id = None correlation_id = object_id[1] else: return jsonify({}) # check if correlation_id exist # # TODO: return error json if not Correlate_object.exist_object( object_type, correlation_id, type_id=type_id): return Response(json.dumps( { "status": "error", "reason": "404 Not Found" }, indent=2, sort_keys=True), mimetype='application/json'), 404 # oject exist else: res = Correlate_object.get_object_metadata(object_type, correlation_id, type_id=type_id) return jsonify(res)
def is_valid_obj_to_export(obj_type, obj_subtype, obj_id): if not Correlate_object.is_valid_object_type(obj_type): return False if not Correlate_object.is_valid_object_subtype(obj_type, obj_subtype): return False if not Correlate_object.exist_object(obj_type, obj_id, type_id=obj_subtype): return False return True
def show_correlation(): if request.method == 'POST': object_type = request.form.get('object_type') type_id = request.form.get('type_id') correlation_id = request.form.get('correlation_id') max_nodes = request.form.get('max_nb_nodes_in') mode = request.form.get('mode') if mode: mode = 'inter' else: mode = 'union' ## get all selected correlations correlation_names = [] correlation_objects = [] #correlation_names correl_option = request.form.get('CryptocurrencyCheck') if correl_option: correlation_names.append('cryptocurrency') correl_option = request.form.get('PgpCheck') if correl_option: correlation_names.append('pgp') correl_option = request.form.get('UsernameCheck') if correl_option: correlation_names.append('username') correl_option = request.form.get('DecodedCheck') if correl_option: correlation_names.append('decoded') correl_option = request.form.get('ScreenshotCheck') if correl_option: correlation_names.append('screenshot') # correlation_objects correl_option = request.form.get('DomainCheck') if correl_option: correlation_objects.append('domain') correl_option = request.form.get('PasteCheck') if correl_option: correlation_objects.append('paste') # list as params correlation_names = ",".join(correlation_names) correlation_objects = ",".join(correlation_objects) # redirect to keep history and bookmark return redirect( url_for('correlation.show_correlation', object_type=object_type, type_id=type_id, correlation_id=correlation_id, mode=mode, max_nodes=max_nodes, correlation_names=correlation_names, correlation_objects=correlation_objects)) # request.method == 'GET' else: object_type = request.args.get('object_type') type_id = request.args.get('type_id') correlation_id = request.args.get('correlation_id') max_nodes = sanitise_nb_max_nodes(request.args.get('max_nodes')) mode = sanitise_graph_mode(request.args.get('mode')) expand_card = request.args.get('expand_card') correlation_names = sanitise_correlation_names( request.args.get('correlation_names')) correlation_objects = sanitise_correlation_objects( request.args.get('correlation_objects')) # # TODO: remove me, rename screenshot to image if object_type == 'image': object_type == 'screenshot' # check if correlation_id exist if not Correlate_object.exist_object( object_type, correlation_id, type_id=type_id): abort(404) # return 404 # oject exist else: dict_object = { "object_type": object_type, "correlation_id": correlation_id } dict_object["max_nodes"] = max_nodes dict_object["mode"] = mode dict_object["correlation_names"] = correlation_names dict_object["correlation_names_str"] = ",".join(correlation_names) dict_object["correlation_objects"] = correlation_objects dict_object["correlation_objects_str"] = ",".join( correlation_objects) dict_object["metadata"] = Correlate_object.get_object_metadata( object_type, correlation_id, type_id=type_id) if type_id: dict_object["metadata"]['type_id'] = type_id dict_object["metadata_card"] = get_card_metadata( object_type, correlation_id, type_id=type_id, expand_card=expand_card) return render_template("show_correlation.html", dict_object=dict_object, bootstrap_label=bootstrap_label)