Modèle de permissions (RBAC)
Le projet utilise un RBAC avancé avec authentification centralisée et vérifications de permissions systématiques.
Concepts
| Concept | Signification |
|---|---|
| User | Acteur authentifié (via Keycloak) |
| Role | Groupe de permissions |
| Permission | Capacité atomique |
| Service | Scope organisationnel ou applicatif |
| Application | Contexte d'application métier |
| Policy | Classe d'autorisation Laravel |
:::danger Règle absolue Ne pas inférer l'accès depuis la visibilité UI. L'autorisation côté serveur est obligatoire. :::
Ordre de vérification des permissions
1. Authentification (Keycloak)
2. Résolution du contexte application/service
3. Vérification Policy ou Permission
4. Vérification des règles métier
5. Log d'audit pour les actions sensibles
Patterns d'autorisation
// Dans un contrôleur
$this->authorize('update', $user);
$this->authorize('assignRole', $user);
// Gate
Gate::authorize('manage-applications');
// Middleware de route
Route::middleware('can:admin-access')
// Dans une vue Blade (affichage uniquement — pas de substitut à la sécurité serveur)
@can('delete', $user)
<button ...>Supprimer</button>
@endcan
Tables
users ←── roles ←── permissions
│ │
└── id_role └── id_permission
Les pivots associent les permissions aux rôles et les rôles aux utilisateurs.