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), in Drupal è possibile assegnare un solo Permesso che vale per tutti i tipi di Contenuto. Negando questo Permesso agli Utenti anonimi si impedisce ai Visitatori di vedere tutti i Contenuti.
| assegna al Ruolo la possibilità di vedere tutti i Contenuti (C) | In Persone - Permessi cerca la riga col Permesso Visualizza contenuti pubblicati e attiva la casella corrispondente alla colonna del Ruolo |
Si può rendere più flessibile la visualizzazione con alcuni moduli aggiuntivi oppure, come vedremo, agendo sui Permessi delle Viste che mostrano i Contenuti ai diversi Utenti.
Se sei l'unico utilizzatore della app che stai costruendo, puoi saltare il resto di questa Guida e le altre Guide sulla protezione delle informazioni, perché come Amministratore hai sempre tutti i Permessi su tutte le informazioni contenute nella app. Se invece prevedi che la tua app sia utilizzata anche da altri, allora ti invito a proseguire nella lettura.
Per quanto riguarda la creazione (C), è possibile assegnare Permessi per singoli Tipi di Contenuto ai diversi Ruoli:
| 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 |
Per quanto riguarda la modifica (U) e l'eliminazione (D), è possibile assegnare Permessi per singoli Tipi di Contenuto ai diversi Ruoli, distinguendo tra Contenuti creati dall'Utente e Contenuti creati da altri Utenti:
| assegna al Ruolo la possibilità di modificare (U) o eliminare (D) i Contenuti di quel tipo creati dall'Utente stesso | In 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 tipo | In 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 insufficiente 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 possono costituire un problema (lo sono per la costruzione della app di esempio "Vicinato"), nelle prossime Guide troverai alcuni metodi aggiuntivi per proteggere i Contenuti in modo più flessibile.