Proteggere con Ruoli e Permessi

Assegnare i permessi di creazione, modifica e cancellazione sui diversi Tipi di Entità ad diversi Ruoli degli Utenti.
Aggiornata il:

Permessi assegnati ai Ruoli

La protezione base offerta da Drupal utilizza i Permessi per concedere o negare ad un Ruolo (e quindi agli Utenti che hanno quel Ruolo) le operazioni CRUD (C=Create R=Read U=Update D=Delete), cioè la possibilità di creare, vedere, modificare ed eliminare i Contenuti di un certo tipo. Abbiamo già visto come creare i Ruoli e come assegnarli agli Utenti; vediamo ora come assegnare i Permessi ai Ruoli (e quindi agli Utenti che hanno quei Ruoli). 

Per quanto riguarda la visualizzazione (R), Drupal prevede in Persone - Permessi un unico Permesso - Visualizza contenuti pubblicati - che vale per tutti i tipi di Contenuto, da assegnare all'Utente registrato e, per le app che non intendono mostrare informazioni ai Visitatori, da negare agli Utenti anonimi. Vedremo più avanti con le Viste come modulare la visualizzazione delle informazioni Utente per Utente. 

Per le operazioni CUD è invece possibile  in Persone - Permessi assegnare i Permessi per tipo di Contenuto e distinguere tra Contenuti creati dall'Utente e Contenuti creati da altri Utenti. Ecco come:

assegna al Ruolo la possibilità di creare Contenuti di un tipo (C)In Persone - Permessi cerca la riga col Permesso TIPOCONTENUTO: Crea nuovo contenuto e attiva la casella corrispondente alla colonna del Ruolo
assegna al Ruolo la possibilità di modificare (U) o eliminare (D) i Contenuti di quel tipo creati dall'Utente stessoIn Persone - Permessi cerca la riga col Permesso TIPOCONTENUTO: Modifica i propri contenuti o TIPOCONTENUTO:  Elimina i propri contenuti e attiva la casella corrispondente alla colonna del Ruolo 
assegna al Ruolo la possibilità di modificare (U) o cancellare (D) tutti i Contenuti di quel tipoIn Persone - Permessi cerca la riga col Permesso TIPOCONTENUTO: Modifica tutti i contenuti o TIPOCONTENUTO:  Elimina tutti i  contenuti e attiva la casella corrispondente alla colonna del Ruolo 

Per togliere un Permesso è sufficiente disattivare la casella corrispondente. Analoghi Permessi sono disponibili per gli altri tipi di Entità

Limiti di Ruoli e Permessi

La protezione base offerta da Ruoli e Permessi può risultare non adeguata alla app che stai costruendo, perché:

  • esiste un solo Permesso di visualizzazione per tutti i Contenuti, quindi non è possibile nascondere uno specifico tipo di Contenuto ad uno specifico Ruolo
  • i Permessi assegnati ad un Ruolo su un tipo di Entità o Contenuto valgono per tutti Contenuti di quel tipo e per tutti gli Utenti che hanno quel Ruolo; non è possibile diversificare i Permessi per singolo Contenuto o singolo Utente
  • I Permessi sono staticamente assegnati dall'Amministratore e non possono essere modificati né dagli Utenti né dagli eventi che occorrono nella app
  • Ruoli e Permessi non consentono di suddividere gli Utenti in gruppi che condividono un insieme di Contenuti, nascondendole agli altri Utenti con gli stessi Ruoli; perciò non consentono di usare la medesima installazione di una app per diversi comunità o clienti (app multitenant).

Se per la app che stai costruendo questi limiti sono un problema (come lo sono per la costruzione della app di esempio), nelle prossime Guide troverai alcuni metodi aggiuntivi per proteggere i Contenuti in modo più flessibile.