Sécurité et guards
Deux niveaux de droits
| Niveau | Source | Exemple |
|---|---|---|
| Plateforme | request.user.platformRole | SUPER_ADMIN |
| Tenant | tenantContext.currentTenant.membership.level | ADMIN, OWNER |
@SuperAdminOnly()
Utilisé pour les actions globales plateforme : création, suppression ou administration globale des tenants.
@Post('create')
@SuperAdminOnly()
async create(@Body() payload: TenantCreatePayload) {}
Le guard vérifie uniquement request.user.platformRole.
@TenantMinLevel(...)
Utilisé pour les routes qui nécessitent un tenant courant.
@TenantMinLevel(TenantRoleLevelEnum.TEACHER)
@Get(':tenantId/evaluations')
async list() {}
@TenantAdmin()
Alias de :
@TenantMinLevel(TenantRoleLevelEnum.ADMIN)
Les niveaux sont :
| Rôle | Niveau |
|---|---|
STUDENT | 10 |
TEACHER | 20 |
ADMIN | 30 |
OWNER | 40 |