fix(qualys/search): KPI vuln_map est dict total/severityN, pas int
This commit is contained in:
parent
3c00f05263
commit
392c8f4fe5
@ -468,13 +468,18 @@ async def qualys_search(request: Request, db=Depends(get_db),
|
||||
|
||||
# KPI : total / avec vuln / sans vuln + filtrage vuln_filter (with|zero)
|
||||
vuln_filter = request.query_params.get("vuln_filter", "")
|
||||
def _vuln_total(a):
|
||||
vc = vuln_map.get(str(a.ip_address), {})
|
||||
if isinstance(vc, dict):
|
||||
return int(vc.get("total", 0) or 0)
|
||||
return int(vc or 0)
|
||||
kpi_total = len(assets) if assets else 0
|
||||
kpi_with_vuln = sum(1 for a in assets if vuln_map.get(str(a.ip_address), 0) > 0) if assets else 0
|
||||
kpi_with_vuln = sum(1 for a in assets if _vuln_total(a) > 0) if assets else 0
|
||||
kpi_zero_vuln = kpi_total - kpi_with_vuln
|
||||
if assets and vuln_filter == "with":
|
||||
assets = [a for a in assets if vuln_map.get(str(a.ip_address), 0) > 0]
|
||||
assets = [a for a in assets if _vuln_total(a) > 0]
|
||||
elif assets and vuln_filter == "zero":
|
||||
assets = [a for a in assets if vuln_map.get(str(a.ip_address), 0) == 0]
|
||||
assets = [a for a in assets if _vuln_total(a) == 0]
|
||||
|
||||
ctx = base_context(request, db, user)
|
||||
ctx.update({
|
||||
|
||||
Loading…
Reference in New Issue
Block a user