diff --git a/dojo/importers/base_importer.py b/dojo/importers/base_importer.py
index 9625b6c3f93..c149f4e169d 100644
--- a/dojo/importers/base_importer.py
+++ b/dojo/importers/base_importer.py
@@ -460,6 +460,13 @@ def update_import_history(
import_settings["push_to_jira"] = self.push_to_jira
import_settings["tags"] = self.tags
import_settings["scan_date"] = self.scan_date.isoformat() if self.scan_date_override else None
+ import_settings["service"] = self.service
+ import_settings["close_old_findings_product_scope"] = self.close_old_findings_product_scope
+ import_settings["do_not_reactivate"] = self.do_not_reactivate
+ import_settings["apply_tags_to_findings"] = self.apply_tags_to_findings
+ import_settings["apply_tags_to_endpoints"] = self.apply_tags_to_endpoints
+ import_settings["group_by"] = self.group_by
+ import_settings["create_finding_groups_for_all_findings"] = self.create_finding_groups_for_all_findings
if settings.V3_FEATURE_LOCATIONS:
# Add the list of locations that were added exclusively at import time
if len(self.endpoints_to_add) > 0:
diff --git a/dojo/templatetags/display_tags.py b/dojo/templatetags/display_tags.py
index 9267ce2b9f1..25dee916bd1 100644
--- a/dojo/templatetags/display_tags.py
+++ b/dojo/templatetags/display_tags.py
@@ -1083,6 +1083,13 @@ def esc(x):
Push to jira: %s
Tags: %s
Endpoints: %s
+ Service: %s
+ Close Old Findings (Product Scope): %s
+ Do Not Reactivate: %s
+ Apply Tags to Findings: %s
+ Apply Tags to Endpoints: %s
+ Group By: %s
+ Create Finding Groups for All Findings: %s
"
"""
@@ -1090,26 +1097,31 @@ def esc(x):
icon = "fa-info-circle"
color = ""
+ s = test_import.import_settings
+ common_fields = (
+ esc(test_import.id),
+ esc(s.get("active", None)),
+ esc(s.get("verified", None)),
+ esc(s.get("minimum_severity", None)),
+ esc(s.get("close_old_findings", None)),
+ esc(s.get("push_to_jira", None)),
+ esc(s.get("tags", None)),
+ )
+ extra_fields = (
+ esc(s.get("service", None)),
+ esc(s.get("close_old_findings_product_scope", None)),
+ esc(s.get("do_not_reactivate", None)),
+ esc(s.get("apply_tags_to_findings", None)),
+ esc(s.get("apply_tags_to_endpoints", None)),
+ esc(s.get("group_by", None)),
+ esc(s.get("create_finding_groups_for_all_findings", None)),
+ )
+
if not settings.V3_FEATURE_LOCATIONS:
# TODO: Delete this after the move to Locations
- return mark_safe(html % (icon, color, icon,
- esc(test_import.id),
- esc(test_import.import_settings.get("active", None)),
- esc(test_import.import_settings.get("verified", None)),
- esc(test_import.import_settings.get("minimum_severity", None)),
- esc(test_import.import_settings.get("close_old_findings", None)),
- esc(test_import.import_settings.get("push_to_jira", None)),
- esc(test_import.import_settings.get("tags", None)),
- esc(test_import.import_settings.get("endpoints", test_import.import_settings.get("endpoint", None)))))
- return mark_safe(html % (icon, color, icon,
- esc(test_import.id),
- esc(test_import.import_settings.get("active", None)),
- esc(test_import.import_settings.get("verified", None)),
- esc(test_import.import_settings.get("minimum_severity", None)),
- esc(test_import.import_settings.get("close_old_findings", None)),
- esc(test_import.import_settings.get("push_to_jira", None)),
- esc(test_import.import_settings.get("tags", None)),
- esc(test_import.import_settings.get("locations", None))))
+ endpoints = esc(s.get("endpoints", s.get("endpoint", None)))
+ return mark_safe(html % (icon, color, icon, *common_fields, endpoints, *extra_fields))
+ return mark_safe(html % (icon, color, icon, *common_fields, esc(s.get("locations", None)), *extra_fields))
@register.filter(needs_autoescape=True)
diff --git a/unittests/test_update_import_history.py b/unittests/test_update_import_history.py
index d4192281985..5259b86c0aa 100644
--- a/unittests/test_update_import_history.py
+++ b/unittests/test_update_import_history.py
@@ -177,3 +177,26 @@ def test_import_settings_scan_date_when_no_scan_date_supplied(self):
# Verify import_settings is JSON-serializable
json.dumps(settings)
self.assertIsNone(settings["scan_date"])
+
+ def test_import_settings_contains_scope_and_group_fields(self):
+ """import_settings should persist the seven scope/tag/group-by importer options."""
+ self.importer.service = "my-service"
+ self.importer.close_old_findings_product_scope = True
+ self.importer.do_not_reactivate = True
+ self.importer.apply_tags_to_findings = True
+ self.importer.apply_tags_to_endpoints = True
+ self.importer.group_by = "component_name"
+ self.importer.create_finding_groups_for_all_findings = True
+
+ new_findings = self._create_findings(1)
+ test_import = self.importer.update_import_history(new_findings=new_findings)
+
+ s = test_import.import_settings
+ json.dumps(s)
+ self.assertEqual(s["service"], "my-service")
+ self.assertTrue(s["close_old_findings_product_scope"])
+ self.assertTrue(s["do_not_reactivate"])
+ self.assertTrue(s["apply_tags_to_findings"])
+ self.assertTrue(s["apply_tags_to_endpoints"])
+ self.assertEqual(s["group_by"], "component_name")
+ self.assertTrue(s["create_finding_groups_for_all_findings"])