diff --git a/app/routers/qualys.py b/app/routers/qualys.py index 77b10b4..dfd8dc9 100644 --- a/app/routers/qualys.py +++ b/app/routers/qualys.py @@ -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({