FEAT: Groupes — assigner des accès caméra par groupe #138

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

Contexte

Étendre le système de groupes existant pour supporter les accès caméra au niveau groupe.

Référence spec

Section 4.2 Permissions — groupes de permissions.

État actuel

  • Group entity existe (Name, Description)
  • UserGroup join entity existe (UserId, GroupId)
  • Pas de relation Group → Camera

⚠️ 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. Créer GroupCameraAccess entity (GroupId, SiteId, CameraId?)
  2. Endpoints API CRUD pour les accès caméra groupe
  3. Adapter ICameraAccessService pour résoudre les accès groupe (accès direct > accès groupe, union)
  4. UI Blazor dans GroupsPage

Critères d'acceptation

  • Maquette the-designer validée par le PO
  • Entité GroupCameraAccess créée
  • Endpoints API fonctionnels
  • Résolution : accès direct prioritaire, accès groupe en union
  • UI dans GroupsPage
  • Tests passent

Fichiers concernés

  • src/Heimdall.Domain/Entities/GroupCameraAccess.cs (nouveau)
  • src/Heimdall.Application/Services/CameraAccessService.cs
  • src/Heimdall.Web/Controllers/GroupsController.cs
  • src/Heimdall.Web/Components/Pages/Admin/GroupsPage.razor

Maquette

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

![Maquette](à définir)

## Contexte Étendre le système de groupes existant pour supporter les accès caméra au niveau groupe. ## Référence spec Section 4.2 Permissions — groupes de permissions. ## État actuel - `Group` entity existe (Name, Description) - `UserGroup` join entity existe (UserId, GroupId) - Pas de relation Group → Camera --- ## ⚠️ 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. Créer `GroupCameraAccess` entity (GroupId, SiteId, CameraId?) 2. Endpoints API CRUD pour les accès caméra groupe 3. Adapter `ICameraAccessService` pour résoudre les accès groupe (accès direct > accès groupe, union) 4. UI Blazor dans GroupsPage ## Critères d'acceptation - [ ] Maquette the-designer validée par le PO - [ ] Entité `GroupCameraAccess` créée - [ ] Endpoints API fonctionnels - [ ] Résolution : accès direct prioritaire, accès groupe en union - [ ] UI dans GroupsPage - [ ] Tests passent ## Fichiers concernés - `src/Heimdall.Domain/Entities/GroupCameraAccess.cs` (nouveau) - `src/Heimdall.Application/Services/CameraAccessService.cs` - `src/Heimdall.Web/Controllers/GroupsController.cs` - `src/Heimdall.Web/Components/Pages/Admin/GroupsPage.razor` --- ## 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#138
No description provided.