Spaces:
Running
Running
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)
- 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:
|