audit(ui): compléter les tests RBAC multi-roles
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run

This commit is contained in:
root 2026-08-22 00:20:53 +00:00
parent ac71edef9e
commit 96a90e4de1
4 changed files with 30 additions and 1 deletions

View file

@ -103,3 +103,17 @@
- Attendu : liste documentaire ou redirection vers le module documentaire - Attendu : liste documentaire ou redirection vers le module documentaire
réellement utilisé. réellement utilisé.
- Impact : lien cassé pour un utilisateur qui cherche les documents. - Impact : lien cassé pour un utilisateur qui cherche les documents.
## UI-012 — Menu non filtré selon les permissions
- Priorité : P1
- Comptes : `TEST_UI_USER_MULTI` et `TEST_UI_USER_NONE`.
- Résultat : les deux dashboards contiennent les mêmes liens équipements,
interventions et nettoyage, y compris pour `TEST_UI_USER_NONE` sans rôle.
- Backend : `TEST_UI_USER_NONE` reçoit bien 403 sur ces URLs ; le backend est
donc plus strict que le menu.
- Résultat multi-rôles : `TEST_UI_USER_MULTI` reçoit 200 sur patrimoine et
interventions, puis 403 patrimoine après un refus individuel, tandis que
les interventions restent accessibles.
- Impact : UX trompeuse et risque d'erreurs ; un utilisateur voit des liens
qu'il ne peut pas ouvrir.

View file

@ -33,6 +33,17 @@ laissés pour inspection manuelle.
- `TEST_UI_COMPANY_MAINTENANCE`. - `TEST_UI_COMPANY_MAINTENANCE`.
## Rôles et utilisateurs RBAC
- rôle ID 9 : `TEST_UI_ROLE_PATRIMOINE``patrimoine.view` ;
- rôle ID 10 : `TEST_UI_ROLE_INTERVENTION``intervention.view`,
`intervention.create` ;
- utilisateur ID 3 : `TEST_UI_USER_MULTI` — rôles 9 et 10, puis refus
individuel de `patrimoine.view` ;
- utilisateur ID 4 : `TEST_UI_USER_NONE` — aucun rôle.
Mot de passe commun temporaire des comptes de test : non documenté dans Git.
## Non créés ## Non créés
La création des salles a été bloquée par UI-003. Aucun équipement, La création des salles a été bloquée par UI-003. Aucun équipement,

View file

@ -13,7 +13,7 @@ terminé.
|---|---|---| |---|---|---|
| Santé, connexion, version | Terminé | Version 0.1.0-dev.2, commit unknown | | Santé, connexion, version | Terminé | Version 0.1.0-dev.2, commit unknown |
| Menu et smoke test | Partiel | Pages principales testées séquentiellement | | Menu et smoke test | Partiel | Pages principales testées séquentiellement |
| RBAC | Partiel | Catalogue et accès anonymes vérifiés | | RBAC | Partiel avancé | multi-rôles, retrait/deny et accès directs testés ; menu non filtré |
| Établissement | Partiel | Sites, bâtiments et zones créés ; confusion site/bâtiment | | Établissement | Partiel | Sites, bâtiments et zones créés ; confusion site/bâtiment |
| Salles | Bloqué | Select bâtiment vide sur `/equipments/rooms/new` | | Salles | Bloqué | Select bâtiment vide sur `/equipments/rooms/new` |
| Équipements | Non commencé | Dépend des salles | | Équipements | Non commencé | Dépend des salles |
@ -50,6 +50,8 @@ terminé.
- Smoke complémentaire : scheduled, meters, consumables, admin-tasks, rules, - Smoke complémentaire : scheduled, meters, consumables, admin-tasks, rules,
formations personnelles, prévention, lifecycle, à jeter, anciens, services formations personnelles, prévention, lifecycle, à jeter, anciens, services
et types de salles répondent 200 ; `/documents/` répond 404. et types de salles répondent 200 ; `/documents/` répond 404.
- Création RBAC : rôles 9/10 et utilisateurs 3/4 ; union multi-rôles, deny
individuel et 403 directs vérifiés.
## Prochaine étape ## Prochaine étape

View file

@ -21,6 +21,8 @@ retournent 401. Les pages métier principales répondent 200.
la base/Gunicorn. la base/Gunicorn.
- P2 : clarifier Site, Collège, Bâtiment et unités de produit. - P2 : clarifier Site, Collège, Bâtiment et unités de produit.
- P2 : injecter `GIT_VERSION` dans les images Docker. - P2 : injecter `GIT_VERSION` dans les images Docker.
- P1 : filtrer le menu et les raccourcis du dashboard selon les permissions
effectives ; actuellement le backend refuse mais les liens restent visibles.
- P2 : clarifier `/planning/availability`, qui reprend le titre et la - P2 : clarifier `/planning/availability`, qui reprend le titre et la
structure de `/planning/time`. structure de `/planning/time`.