FEAT: Entité UserCameraAccess — modèle de données pour contrôle d'accès granulaire caméra #131
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall#131
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Feature de contrôle d'accès granulaire par caméra. Actuellement, un utilisateur a accès à toutes les caméras d'un site s'il est assigné à ce site (
UserSite). Il faut permettre de restreindre l'accès à des caméras spécifiques au sein d'un site.Exemples d'usage :
Référence spec
Section 4.2 Permissions (Policies) — extension du modèle de contrôle d'accès.
Section ENTITIES : ajout de
UserCameraAccessau schéma.État actuel
UserSite(userId, siteId) → accès site complet (tout ou rien)AppRole(Admin/Supervisor/Viewer) → permissions par rôle, pas de granularité caméraCameraappartient àSite→ pas de contrôle d'accès individuelPUT /api/users/{id}/sitesexiste mais n'est pas exposée dans l'UI UsersPageÀ faire
UserCameraAccessdansHeimdall.Domain/Entities/:UserId(Guid, FK → AppUser)SiteId(Guid, FK → Site)CameraId(Guid?, FK → Camera) — null = toutes les caméras du siteDbSet<UserCameraAccess>dansAppDbContextUserCameraAccessConfiguration) :Critères d'acceptation
UserCameraAccesscréée avec bonnes relationsFichiers concernés
src/Heimdall.Domain/Entities/UserCameraAccess.cs(nouveau)src/Heimdall.Infrastructure/Data/AppDbContext.cssrc/Heimdall.Infrastructure/Data/Configurations/UserCameraAccessConfiguration.cs(nouveau)src/Heimdall.Infrastructure/Migrations/(nouvelle migration)Maquette
