From c5fd23ed610982b79818af125ce0a8e3daa88f6d Mon Sep 17 00:00:00 2001 From: Steve Garon Date: Mon, 26 Jul 2021 17:04:44 +0000 Subject: [PATCH 1/2] Preserve signature stats during update --- assemblyline_ui/api/v4/signature.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/assemblyline_ui/api/v4/signature.py b/assemblyline_ui/api/v4/signature.py index ac0a8a08..608f3fcb 100644 --- a/assemblyline_ui/api/v4/signature.py +++ b/assemblyline_ui/api/v4/signature.py @@ -94,9 +94,14 @@ def add_update_signature(**_): # If rule has been deprecated/disabled after initial deployment, then disable it if not (data['status'] != old['status'] and data['status'] == "DISABLED"): data['status'] = old['status'] + + # Preserve last state change data['state_change_date'] = old['state_change_date'] data['state_change_user'] = old['state_change_user'] + # Preserve signature stats + data['stats'] = old['stats'] + # Save the signature return make_api_response({"success": STORAGE.signature.save(key, data), "id": key}) @@ -161,9 +166,14 @@ def add_update_many_signature(**_): # If rule has been deprecated/disabled after initial deployment, then disable it if not (rule['status'] != old_data[key]['status'] and rule['status'] == "DISABLED"): rule['status'] = old_data[key]['status'] + + # Preserve last state change rule['state_change_date'] = old_data[key]['state_change_date'] rule['state_change_user'] = old_data[key]['state_change_user'] + # Preserve signature stats + rule['stats'] = old_data['stats'] + plan.add_upsert_operation(key, rule) if not plan.empty: From 7139255a45983bad085222bbbaeb8e9c6e2297e1 Mon Sep 17 00:00:00 2001 From: Steve Garon Date: Mon, 26 Jul 2021 17:06:19 +0000 Subject: [PATCH 2/2] Fix missing key --- assemblyline_ui/api/v4/signature.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assemblyline_ui/api/v4/signature.py b/assemblyline_ui/api/v4/signature.py index 608f3fcb..bd45fe17 100644 --- a/assemblyline_ui/api/v4/signature.py +++ b/assemblyline_ui/api/v4/signature.py @@ -172,7 +172,7 @@ def add_update_many_signature(**_): rule['state_change_user'] = old_data[key]['state_change_user'] # Preserve signature stats - rule['stats'] = old_data['stats'] + rule['stats'] = old_data[key]['stats'] plan.add_upsert_operation(key, rule)