Utenti e ruoli in WordPress: dal Sottoscrittore all'Amministratore
Ogni persona che lavora sul sito dovrebbe avere solo l'accesso che le serve davvero, non un grado in più.
Quando un sito ha un solo proprietario, il ruolo di Amministratore per tutti sembra la scelta più comoda. Ma appena si aggiungono un copywriter, un cliente che deve solo controllare gli ordini o un collaboratore esterno, dare a tutti lo stesso ruolo diventa il primo problema di sicurezza del sito, spesso prima ancora di un plugin non aggiornato.
1. I cinque ruoli predefiniti
WordPress installa cinque ruoli di base su un sito singolo, ordinati dal più al meno esteso. Ogni ruolo eredita tutte le capacità di quello immediatamente sotto: un Editor può fare tutto ciò che può fare un Autore, e così via lungo la scala.
- Amministratore: accesso completo a ogni funzione dell'area di amministrazione: temi, plugin, impostazioni e gestione di tutti gli altri utenti.
- Editor: pubblica e gestisce i contenuti, inclusi quelli scritti da altri utenti, ma non tocca plugin, temi o impostazioni del sito.
- Autore: scrive, modifica e pubblica solo i propri contenuti, e può caricare i propri file multimediali.
- Collaboratore: scrive e modifica i propri contenuti, ma non può pubblicarli: restano in attesa di revisione fino a quando un Editor o un Amministratore li approva.
- Sottoscrittore: il ruolo assegnato per impostazione predefinita a ogni nuovo utente registrato: può solo leggere i contenuti e gestire il proprio profilo.
Fonte: WordPress.org, «Roles and Capabilities».
2. Ruoli e capacità: due cose diverse
Dietro ogni ruolo, WordPress controlla in realtà singole «capacità»: stringhe come edit_posts, edit_others_posts o manage_options. Un ruolo è solo un nome comodo che raggruppa un insieme di queste capacità. È per questo che un Editor può cancellare l'articolo di un collega, mentre un Autore no: la differenza tra i due ruoli si riduce a poche capacità come edit_others_posts, presente nel primo caso e assente nel secondo.
3. Il principio del minimo privilegio
La regola pratica più utile è semplice: assegna sempre il ruolo minimo che permette alla persona di fare il suo lavoro, non quello più comodo da non dover più pensare. Ogni Amministratore in più è un account che, se compromesso, può cancellare l'intero sito, installare codice malevolo o rubare i dati di tutti gli altri utenti.
- Un cliente che deve solo scrivere articoli: non ha bisogno di accedere a plugin o impostazioni: il ruolo Autore è sufficiente.
- Un collaboratore esterno o uno stagista: il ruolo Collaboratore permette di far revisionare ogni contenuto prima della pubblicazione.
- Un'agenzia o un tecnico esterno: meglio un account Amministratore dedicato, da disattivare al termine dell'incarico, che condividere le credenziali del proprietario.
4. Quando ha senso creare un ruolo personalizzato
I cinque ruoli di base non coprono ogni caso. Un negozio WooCommerce, per esempio, potrebbe avere bisogno di una persona che gestisce solo il catalogo prodotti, senza toccare articoli del blog o impostazioni. In questi casi la funzione add_role() permette di creare un ruolo su misura, con solo le capacità necessarie.
function pillsweb_ruolo_gestore_prodotti() {
add_role(
'gestore_prodotti',
'Gestore Prodotti',
array(
'read' => true,
'edit_products' => true,
'upload_files' => true,
)
);
}
add_action( 'init', 'pillsweb_ruolo_gestore_prodotti' );
Un dettaglio poco intuitivo, segnalato nella documentazione ufficiale: add_role() scrive il ruolo nel database solo alla prima esecuzione. Le chiamate successive non aggiornano le capacità già salvate, nemmeno se cambi l'elenco nel codice. Per modificarle davvero serve rimuovere il ruolo con remove_role() e ricrearlo con add_role().
In sintesi
| Voce | In pratica | Attenzione a |
|---|---|---|
| Amministratore | Accesso completo: temi, plugin, utenti, impostazioni | Tienine il numero più basso possibile |
| Editor | Pubblica e gestisce i contenuti di tutti gli utenti | Nessun accesso a plugin o impostazioni |
| Autore / Collaboratore | Gestiscono solo i propri contenuti, con o senza pubblicazione diretta | Il Collaboratore richiede sempre una revisione |
| Sottoscrittore | Legge e gestisce solo il proprio profilo | Ruolo predefinito per ogni nuova registrazione |
| Ruolo personalizzato | add_role() con solo le capacità necessarie | Le modifiche richiedono remove_role() e una nuova add_role() |
Meno privilegi in circolazione significa meno danno possibile se un account viene compromesso.
Commenti (0)
Registrati per commentare, fare domande e proporre l'argomento della prossima pillola (oppure accedi se hai già un account).
Nessun commento. Sii il primo a scrivere qualcosa.