FEAT: UI Blazor — panneau d'assignation caméras dans UsersPage (design) #134

Open
opened 2026-08-18 08:56:54 +02:00 by nonobis · 1 comment
Owner

Contexte

Interface utilisateur pour que l'administrateur puisse gérer les accès caméra granulaires. Le panneau doit permettre de voir et modifier quels sites et quelles caméras un utilisateur peut consulter.

Référence spec

Section 4.2 Permissions — interface de gestion.
Ticket prerequisite : #131 (entité) + #132 (service) + #133 (API)

État actuel

  • UsersPage.razor : liste les utilisateurs, édition rôles/statut
  • Pas de gestion des sites dans l'UI (l'API existe mais n'est pas exposée)

⚠️ BLOCKER — Maquette the-designer requise

Ce ticket ne peut PAS être implémenté sans maquette the-designer préalable.

  1. Le ticket sera taggé design (déjà fait)
  2. Mission one-shot the-designer -z à lancer pour produire la maquette Penpot
  3. La maquette sera intégrée au corps du ticket (section ## Maquette ci-dessous)
  4. L'implémentation ne commence qu'après validation de la maquette par le PO

Lien Penpot : [à définir — maquette the-designer requise avant implémentation]


À faire

  1. Ajouter un onglet/section "Sites & Caméras" dans le dialog d'édition utilisateur :

    • Liste des sites avec toggle "Accès complet" (site-wide)
    • Sous-arbre des caméras par site (quand "Accès complet" est désactivé)
    • Checkboxes par caméra pour la sélection granulaire
  2. Comportement :

    • Admin : pas de filtrage (section en lecture seule)
    • Supervisor/Viewer : afficher les sites assignés + les caméras
    • Toggle "Toutes les caméras" par site → masquer les checkboxes caméras
    • Bouton "Enregistrer" → appel API PUT
  3. Intégrer dans le flux existant (pas de nouvelle page)

Critères d'acceptation

  • Maquette the-designer validée par le PO
  • Section "Sites & Caméras" dans le dialog d'édition
  • Liste des sites avec toggle "Accès complet"
  • Sous-arbre caméras par site (checkboxes)
  • Toggle "Toutes les caméras" masque les checkboxes
  • Sauvegarde via API

Fichiers concernés

  • src/Heimdall.Web/Components/Pages/UsersPage.razor
  • src/Heimdall.Web/Components/Shared/UserCameraAccessPanel.razor (nouveau)
  • src/Heimdall.Web/Services/HeimdallApiClient.cs

Maquette

  • Lien Penpot : [à définir — maquette the-designer requise]

![Maquette](à définir)

## Contexte Interface utilisateur pour que l'administrateur puisse gérer les accès caméra granulaires. Le panneau doit permettre de voir et modifier quels sites et quelles caméras un utilisateur peut consulter. ## Référence spec Section 4.2 Permissions — interface de gestion. Ticket prerequisite : #131 (entité) + #132 (service) + #133 (API) ## État actuel - `UsersPage.razor` : liste les utilisateurs, édition rôles/statut - Pas de gestion des sites dans l'UI (l'API existe mais n'est pas exposée) --- ## ⚠️ BLOCKER — Maquette the-designer requise **Ce ticket ne peut PAS être implémenté sans maquette the-designer préalable.** 1. Le ticket sera taggé `design` (déjà fait) 2. Mission one-shot `the-designer -z` à lancer pour produire la maquette Penpot 3. La maquette sera intégrée au corps du ticket (section `## Maquette` ci-dessous) 4. L'implémentation ne commence qu'après validation de la maquette par le PO **Lien Penpot** : [à définir — maquette the-designer requise avant implémentation] --- ## À faire 1. Ajouter un **onglet/section "Sites & Caméras"** dans le dialog d'édition utilisateur : - Liste des sites avec toggle "Accès complet" (site-wide) - Sous-arbre des caméras par site (quand "Accès complet" est désactivé) - Checkboxes par caméra pour la sélection granulaire 2. Comportement : - **Admin** : pas de filtrage (section en lecture seule) - **Supervisor/Viewer** : afficher les sites assignés + les caméras - Toggle "Toutes les caméras" par site → masquer les checkboxes caméras - Bouton "Enregistrer" → appel API PUT 3. Intégrer dans le flux existant (pas de nouvelle page) ## Critères d'acceptation - [ ] Maquette the-designer validée par le PO - [ ] Section "Sites & Caméras" dans le dialog d'édition - [ ] Liste des sites avec toggle "Accès complet" - [ ] Sous-arbre caméras par site (checkboxes) - [ ] Toggle "Toutes les caméras" masque les checkboxes - [ ] Sauvegarde via API ## Fichiers concernés - `src/Heimdall.Web/Components/Pages/UsersPage.razor` - `src/Heimdall.Web/Components/Shared/UserCameraAccessPanel.razor` (nouveau) - `src/Heimdall.Web/Services/HeimdallApiClient.cs` --- ## Maquette - **Lien Penpot** : [à définir — maquette the-designer requise] ![Maquette](à définir)
Author
Owner

⚠️ Ce ticket nécessite une maquette the-designer (Penpot) avant toute implémentation.

Voir le ticket parent pour les détails de la maquette.

⚠️ **Ce ticket nécessite une maquette the-designer (Penpot) avant toute implémentation.** Voir le ticket parent pour les détails de la maquette.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#134
No description provided.