Skip to content

Commit 944faa7

Browse files
authored
Merge pull request #14673 from valentijnscholten/feat/import_settings_extra_fields
store more parameters in import settings
2 parents d4ed665 + 73e5f83 commit 944faa7

3 files changed

Lines changed: 60 additions & 18 deletions

File tree

dojo/importers/base_importer.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,13 @@ def update_import_history(
460460
import_settings["push_to_jira"] = self.push_to_jira
461461
import_settings["tags"] = self.tags
462462
import_settings["scan_date"] = self.scan_date.isoformat() if self.scan_date_override else None
463+
import_settings["service"] = self.service
464+
import_settings["close_old_findings_product_scope"] = self.close_old_findings_product_scope
465+
import_settings["do_not_reactivate"] = self.do_not_reactivate
466+
import_settings["apply_tags_to_findings"] = self.apply_tags_to_findings
467+
import_settings["apply_tags_to_endpoints"] = self.apply_tags_to_endpoints
468+
import_settings["group_by"] = self.group_by
469+
import_settings["create_finding_groups_for_all_findings"] = self.create_finding_groups_for_all_findings
463470
if settings.V3_FEATURE_LOCATIONS:
464471
# Add the list of locations that were added exclusively at import time
465472
if len(self.endpoints_to_add) > 0:

dojo/templatetags/display_tags.py

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,33 +1083,45 @@ def esc(x):
10831083
<b>Push to jira:</b> %s<br/>
10841084
<b>Tags:</b> %s<br/>
10851085
<b>Endpoints:</b> %s<br/>
1086+
<b>Service:</b> %s<br/>
1087+
<b>Close Old Findings (Product Scope):</b> %s<br/>
1088+
<b>Do Not Reactivate:</b> %s<br/>
1089+
<b>Apply Tags to Findings:</b> %s<br/>
1090+
<b>Apply Tags to Endpoints:</b> %s<br/>
1091+
<b>Group By:</b> %s<br/>
1092+
<b>Create Finding Groups for All Findings:</b> %s<br/>
10861093
"
10871094
</i>
10881095
"""
10891096

10901097
icon = "fa-info-circle"
10911098
color = ""
10921099

1100+
s = test_import.import_settings
1101+
common_fields = (
1102+
esc(test_import.id),
1103+
esc(s.get("active", None)),
1104+
esc(s.get("verified", None)),
1105+
esc(s.get("minimum_severity", None)),
1106+
esc(s.get("close_old_findings", None)),
1107+
esc(s.get("push_to_jira", None)),
1108+
esc(s.get("tags", None)),
1109+
)
1110+
extra_fields = (
1111+
esc(s.get("service", None)),
1112+
esc(s.get("close_old_findings_product_scope", None)),
1113+
esc(s.get("do_not_reactivate", None)),
1114+
esc(s.get("apply_tags_to_findings", None)),
1115+
esc(s.get("apply_tags_to_endpoints", None)),
1116+
esc(s.get("group_by", None)),
1117+
esc(s.get("create_finding_groups_for_all_findings", None)),
1118+
)
1119+
10931120
if not settings.V3_FEATURE_LOCATIONS:
10941121
# TODO: Delete this after the move to Locations
1095-
return mark_safe(html % (icon, color, icon,
1096-
esc(test_import.id),
1097-
esc(test_import.import_settings.get("active", None)),
1098-
esc(test_import.import_settings.get("verified", None)),
1099-
esc(test_import.import_settings.get("minimum_severity", None)),
1100-
esc(test_import.import_settings.get("close_old_findings", None)),
1101-
esc(test_import.import_settings.get("push_to_jira", None)),
1102-
esc(test_import.import_settings.get("tags", None)),
1103-
esc(test_import.import_settings.get("endpoints", test_import.import_settings.get("endpoint", None)))))
1104-
return mark_safe(html % (icon, color, icon,
1105-
esc(test_import.id),
1106-
esc(test_import.import_settings.get("active", None)),
1107-
esc(test_import.import_settings.get("verified", None)),
1108-
esc(test_import.import_settings.get("minimum_severity", None)),
1109-
esc(test_import.import_settings.get("close_old_findings", None)),
1110-
esc(test_import.import_settings.get("push_to_jira", None)),
1111-
esc(test_import.import_settings.get("tags", None)),
1112-
esc(test_import.import_settings.get("locations", None))))
1122+
endpoints = esc(s.get("endpoints", s.get("endpoint", None)))
1123+
return mark_safe(html % (icon, color, icon, *common_fields, endpoints, *extra_fields))
1124+
return mark_safe(html % (icon, color, icon, *common_fields, esc(s.get("locations", None)), *extra_fields))
11131125

11141126

11151127
@register.filter(needs_autoescape=True)

unittests/test_update_import_history.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,3 +177,26 @@ def test_import_settings_scan_date_when_no_scan_date_supplied(self):
177177
# Verify import_settings is JSON-serializable
178178
json.dumps(settings)
179179
self.assertIsNone(settings["scan_date"])
180+
181+
def test_import_settings_contains_scope_and_group_fields(self):
182+
"""import_settings should persist the seven scope/tag/group-by importer options."""
183+
self.importer.service = "my-service"
184+
self.importer.close_old_findings_product_scope = True
185+
self.importer.do_not_reactivate = True
186+
self.importer.apply_tags_to_findings = True
187+
self.importer.apply_tags_to_endpoints = True
188+
self.importer.group_by = "component_name"
189+
self.importer.create_finding_groups_for_all_findings = True
190+
191+
new_findings = self._create_findings(1)
192+
test_import = self.importer.update_import_history(new_findings=new_findings)
193+
194+
s = test_import.import_settings
195+
json.dumps(s)
196+
self.assertEqual(s["service"], "my-service")
197+
self.assertTrue(s["close_old_findings_product_scope"])
198+
self.assertTrue(s["do_not_reactivate"])
199+
self.assertTrue(s["apply_tags_to_findings"])
200+
self.assertTrue(s["apply_tags_to_endpoints"])
201+
self.assertEqual(s["group_by"], "component_name")
202+
self.assertTrue(s["create_finding_groups_for_all_findings"])

0 commit comments

Comments
 (0)