From 392c8f4fe56c7d3f5a1f5675b1ebc0fc5279305a Mon Sep 17 00:00:00 2001 From: Admin MPCZ Date: Fri, 24 Apr 2026 22:34:16 +0000 Subject: [PATCH] fix(qualys/search): KPI vuln_map est dict total/severityN, pas int --- app/routers/qualys.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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({