Controllo Accessi (RBAC)¶
I Tre Ruoli¶
Global Admin¶
Il Global Admin gestisce l'infrastruttura della piattaforma.
Può:
- Creare e gestire tenant, altri Global Admin, Tenant Admin
- Gestire configurazioni globali: SMTP globale, storage globale
- Inviare annunci broadcast a tutta la piattaforma
- Gestire il sistema ticket/feedback globale
- Impersonare utenti (solo con consenso esplicito)
Non può:
- Vedere i dati privati degli utenti — solo metadati e aggregati
- Impersonare senza il flag
isImpersonationConsentGrantedattivo sull'utente
Caratteristiche tecniche:
tenantId: null— non appartiene a nessun tenant- Non può essere creato nel contesto di un tenant
Tenant Admin¶
Il Tenant Admin amministra un singolo Tenant.
Può:
- Creare, modificare, disabilitare utenti del proprio Tenant
- Assegnare e revocare moduli agli utenti del proprio Tenant
- Configurare SMTP e storage del Tenant
- Vedere utenti e attività del proprio Tenant
Non può:
- Vedere dati di altri Tenant
- Vedere dati privati degli utenti del proprio Tenant (salvo impersonation con consenso)
- Creare Global Admin
Caratteristiche tecniche:
- MFA obbligatorio — impostato automaticamente alla creazione
requiresPasswordChange: trueal primo accesso
User (Utente Base)¶
L'utente base accede agli strumenti assegnati.
Può:
- Accedere solo ai moduli assegnati dal Tenant Admin
- Vedere esclusivamente i propri dati (filtro
ownerId: user.idobbligatorio) - Configurare SMTP personale e storage personale
- Attivare il flag
supportModeper richiedere assistenza remota - Inviare feedback e ticket
Guards (Guardie)¶
| Guard | Funzione |
|---|---|
JwtAuthGuard |
Valida JWT e carica utente fresco dal DB |
LocalAuthGuard |
Valida email/password via LocalStrategy |
RolesGuard |
Verifica ruolo via decoratore @Roles() |
@Public() |
Esclude un endpoint dalla verifica JWT |
Assegnazione Moduli¶
I moduli operano su due livelli combinati:
Tenant.modules— moduli abilitati per il tenant (il "catalogo" disponibile)User.modules— moduli assegnati al singolo utente
Un utente può accedere solo ai moduli presenti in entrambe le liste. Se il Tenant Admin disabilita un modulo dal tenant, nessun utente di quel tenant può accedervi, indipendentemente dall'assegnazione individuale.