MugdhaV commited on
Commit
cc0813f
·
1 Parent(s): f000981

Fix to_dict error and finding sort order

Browse files

- Add to_dict() method to dynamic Vulnerability objects in ModalScanResult
so report generation (JSON/Markdown export) works correctly
- Sort findings by severity (descending) then line number (ascending)

Files changed (1) hide show
  1. gradio_app.py +3 -1
gradio_app.py CHANGED
@@ -55,8 +55,10 @@ class ModalScanResult:
55
  self.vulnerabilities = []
56
  for v in vuln_data:
57
  # Create a simple object with attributes matching Vulnerability
 
58
  vuln_obj = type('Vulnerability', (), v)()
59
  vuln_obj.risk_level = type('RiskLevel', (), {'value': v.get('risk_level', 'INFO'), 'name': v.get('risk_level', 'INFO')})()
 
60
  self.vulnerabilities.append(vuln_obj)
61
  else:
62
  self.vulnerabilities = []
@@ -1193,7 +1195,7 @@ class ModernSecurityAuditorApp:
1193
  }
1194
  sorted_vulns = sorted(
1195
  unique_vulns,
1196
- key=lambda v: severity_order.get(v.risk_level, 5)
1197
  )
1198
 
1199
  for vuln in sorted_vulns:
 
55
  self.vulnerabilities = []
56
  for v in vuln_data:
57
  # Create a simple object with attributes matching Vulnerability
58
+ raw = dict(v) # preserve original dict for to_dict()
59
  vuln_obj = type('Vulnerability', (), v)()
60
  vuln_obj.risk_level = type('RiskLevel', (), {'value': v.get('risk_level', 'INFO'), 'name': v.get('risk_level', 'INFO')})()
61
+ vuln_obj.to_dict = lambda _raw=raw: _raw
62
  self.vulnerabilities.append(vuln_obj)
63
  else:
64
  self.vulnerabilities = []
 
1195
  }
1196
  sorted_vulns = sorted(
1197
  unique_vulns,
1198
+ key=lambda v: (severity_order.get(v.risk_level, 5), getattr(v, 'line_number', 0))
1199
  )
1200
 
1201
  for vuln in sorted_vulns: