diff --git a/app/routers/qualys_tags.py b/app/routers/qualys_tags.py index 9e546c2..c5fdae6 100644 --- a/app/routers/qualys_tags.py +++ b/app/routers/qualys_tags.py @@ -97,7 +97,23 @@ def tags_create_all_static(request: Request, db=Depends(get_db)): ) -@router.get("/qualys/tagsv3/catalog", response_class=JSONResponse) +@router.get("/qualys/tagsv3/catalog", response_class=HTMLResponse) +def tags_catalog_page(request: Request, db=Depends(get_db)): + """Page de reference : nom tag / QQL / couleur pour toute la nomenclature V3.""" + user = get_current_user(request) + if not user: + return RedirectResponse(url="/login") + perms = get_user_perms(db, user) + if not can_view(perms, "qualys"): + return RedirectResponse(url="/dashboard") + catalog = load_catalog() or {} + return templates.TemplateResponse("qualys_tagsv3_catalog.html", { + "request": request, "user": user, "app_name": APP_NAME, + "catalog": catalog, + }) + + +@router.get("/qualys/tagsv3/catalog.json", response_class=JSONResponse) def tags_catalog_json(request: Request, db=Depends(get_db)): user = get_current_user(request) if not user: diff --git a/app/templates/qualys_tagsv3.html b/app/templates/qualys_tagsv3.html index 18330db..68bd94a 100644 --- a/app/templates/qualys_tagsv3.html +++ b/app/templates/qualys_tagsv3.html @@ -4,8 +4,9 @@

Qualys Tags V3 — Vue actuelle

- Analyse gap vs nomenclature V3 - Tags (vue legacy) + Catalogue V3 + Analyse gap vs V3 + Tags (legacy)
diff --git a/app/templates/qualys_tagsv3_catalog.html b/app/templates/qualys_tagsv3_catalog.html new file mode 100644 index 0000000..8d234e0 --- /dev/null +++ b/app/templates/qualys_tagsv3_catalog.html @@ -0,0 +1,63 @@ +{% extends 'base.html' %} +{% block title %}Tags V3 - Catalogue{% endblock %} +{% block content %} +
+

Catalogue nomenclature Qualys V3

+
+ Vue Qualys + Gap vs V3 + Export JSON +
+
+ +
+

Référence complète des tags Qualys SANEF V3 : nom, type, règle QQL, couleur. Les tags DYN se créent dans la console Qualys (API non supportée). Les STAT se créent via la page Gap.

+
+ +{% for cat_code, cat in catalog.categories.items() %} +
+

{{ cat_code }}

+

{{ cat.description }}

+ + {% if cat.tags %} + + + + + + + + + + + {% for t in cat.tags %} + + + + + + + + + {% endfor %} + +
TagTypeAutoQQL / DescriptionCouleur
{{ t.name }}{{ t.type }}{% if t.auto %}{% else %}{% endif %}{{ t.qql or t.description or '-' }}{{ t.color }}
+ {% endif %} + + {% if cat.prefixes %} + + + + {% for p in cat.prefixes %} + + + + + {% endfor %} + +
PréfixeDescription
{{ p.prefix }}xxx{{ p.description }}
+ {% endif %} +
+{% endfor %} + +{% endblock %} diff --git a/app/templates/qualys_tagsv3_gap.html b/app/templates/qualys_tagsv3_gap.html index 4e332ae..4fdeb0c 100644 --- a/app/templates/qualys_tagsv3_gap.html +++ b/app/templates/qualys_tagsv3_gap.html @@ -3,7 +3,10 @@ {% block content %}

Gap nomenclature V3 ↔ Qualys

- ← Vue Qualys +
+ Catalogue V3 + ← Vue Qualys +
{% if not gap.ok %}