From 1b861f55ee4ae8af8467c80d7b3e64522c004cf1 Mon Sep 17 00:00:00 2001 From: Terrtia Date: Tue, 18 Feb 2020 11:27:00 +0100 Subject: [PATCH] chg: [UI MISP export] add error output --- bin/lib/Correlate_object.py | 7 ++++ var/www/blueprints/import_export.py | 21 ++++++++---- .../import_export/block_to_export_input.html | 32 +++++++++++++++++++ .../import_export/export_object.html | 13 ++++++++ 4 files changed, 66 insertions(+), 7 deletions(-) create mode 100644 var/www/templates/import_export/block_to_export_input.html diff --git a/bin/lib/Correlate_object.py b/bin/lib/Correlate_object.py index 4dbfdd20..b8e603ee 100755 --- a/bin/lib/Correlate_object.py +++ b/bin/lib/Correlate_object.py @@ -383,6 +383,13 @@ def get_obj_global_id(obj_type, obj_id, obj_sub_type=None): return '{}:{}'.format(obj_type, obj_id) +# used by UI +def get_obj_str_type_subtype(obj_type, obj_subtype): + if obj_subtype: + return '{};{}'.format(obj_type, obj_subtype) + else: + return obj_type + ######## API EXPOSED ######## def sanitize_object_type(object_type): if not is_valid_object_type(object_type): diff --git a/var/www/blueprints/import_export.py b/var/www/blueprints/import_export.py index 1c9ff702..8bb22664 100644 --- a/var/www/blueprints/import_export.py +++ b/var/www/blueprints/import_export.py @@ -7,6 +7,7 @@ import os import sys +import uuid import json import random @@ -102,16 +103,22 @@ def export_object_file(): if MispExport.is_valid_obj_to_export(obj_type, obj_subtype, obj_id): l_obj_to_export.append(obj_dict) else: - l_obj_invalid.append(obj_dict) - print(l_obj_to_export) - print(l_obj_invalid) + if obj_id: + l_obj_invalid.append(obj_dict) - if l_obj_to_export: + if l_obj_invalid: + for obj_dict in l_obj_to_export: + obj_dict['uuid'] = str(uuid.uuid4()) + obj_dict['type'] = Correlate_object.get_obj_str_type_subtype(obj_dict['type'], obj_dict.get('subtype', None)) + for obj_dict in l_obj_invalid: + obj_dict['uuid'] = str(uuid.uuid4()) + obj_dict['type'] = Correlate_object.get_obj_str_type_subtype(obj_dict['type'], obj_dict.get('subtype', None)) + + return render_template("export_object.html", l_obj_to_export=l_obj_to_export, + l_obj_invalid=l_obj_invalid) + else: json_export = MispExport.create_list_of_objs_to_export(l_obj_to_export) export_filename = MispExport.get_export_filename(json_export) json_export = MispExport.create_in_memory_file(json_export) return send_file(json_export, as_attachment=True, attachment_filename=export_filename) - - else: - return render_template("export_object.html", bootstrap_label=bootstrap_label) diff --git a/var/www/templates/import_export/block_to_export_input.html b/var/www/templates/import_export/block_to_export_input.html new file mode 100644 index 00000000..03053ba8 --- /dev/null +++ b/var/www/templates/import_export/block_to_export_input.html @@ -0,0 +1,32 @@ +
+ + + + +
+ {%if obj_type=="Object type..."%} +     Please select an object type. + {%endif%} +              Unknow or Invalid ID. +
+
diff --git a/var/www/templates/import_export/export_object.html b/var/www/templates/import_export/export_object.html index 8bc237fb..59e3222b 100644 --- a/var/www/templates/import_export/export_object.html +++ b/var/www/templates/import_export/export_object.html @@ -70,6 +70,19 @@ + {% for obj_dict in l_obj_to_export %} + {% with obj_type=obj_dict['type'], obj_id=obj_dict['id'], obj_lvl=obj_dict['lvl'], input_uuid=obj_dict['uuid'], obj_error=False%} + {% include 'import_export/block_to_export_input.html' %} + {% endwith %} + {% endfor %} + +
+ + {% for obj_dict in l_obj_invalid %} + {% with obj_type=obj_dict['type'], obj_id=obj_dict['id'], obj_lvl=obj_dict['lvl'], input_uuid=obj_dict['uuid'], obj_error=True%} + {% include 'import_export/block_to_export_input.html' %} + {% endwith %} + {% endfor %}