Come modificare i roles di WordPress e lavorarci

Come modificare i roles di WordPress e lavorarci

In precedenza avevo evidenziato, peraltro un po’ a malincuore, come la gestione dei ruoli in WP sia piuttosto carente e come sia opportuno non metterci mano: vorrei quindi dedicare un intero articolo all’argomento, cercando di capirci qualcosa in più anche in base all’esperienza che ho fatto negli ultimi tempi.

Cosa sono i ruoli (roles) di WordPress?

I ruoli servono a stabilire, semplificando, “chi possa fare cosa” – in generale in un sistema informatico qualsiasi (e nello specifico in un sito multi-utente): ad esempio un amministratore può cambiare theme, modificare il core, abilitare plugin e creare un utenti, così come un utente ospite può soltanto creare post che verranno pubblicati dopo l’approvazione. I ruoli sono per questo motivo delicatissimi ed assegnarli male può comportare la compromissione dell’intero sito e l’eventuale perdita dei dati. Ho scritto a più riprese che WordPress è molto soggetto ad attacchi informatici, e questo per due ragioni apparenti fondamentali: la prima è il sistema di login (le password scelte sono davvero troppo facili da indovinare, in certi casi), il secondo sono i plugin fallati che vengono installati nonostante tutto. Molti webmaster sono convintissimi che sia un problema da relegare ai provider di hosting, ma non è così, quantomeno se curate voi stessi la messa a punto del sito da webmaster e se state utilizzando hosting condivisi, dedicati unmanaged e così via.

Nel frattempo siamo pervenuti ad un core sempre più avanzato, e di conseguenza ad una nuova gestione dei permessi utenti semplice ed intuitiva mediante Joomla!, ed in questo il CMS (che personalmente non amo) sembra obiettivamente mettere la freccia per sorpassare.

Pubblicità
LEGGI ANCHE:  Cos'è WordPress?

Come sono gestiti i ruoli in WordPress

Dalle mie ricerche emerge come la maggioranza dei migliori plugin per modificare i ruoli sia a pagamento: una testimonianza del fatto che questa feature non sia affatto supportata nè sostenuta dalla comunità, e che farne uso sia difficile quanto, in certa misura, sconsigliabile. In WordPress, stando alla documentazione del codex, i ruoli predefiniti sono sei: Super Admin (che può fare tutto), Administrator, Editor, Author, Contributor e Subscriber (il più “vincolato” della catena).

Ognuno di essi potrà eseguire un insieme predefinito di azioni (capabilities), ad esempio:

  • Super Admin – può accedere ad un network di siti in WordPress (multi-site);
  • Administrator – può accedere ad un singolo sito in WordPress (single-site);
  • Editor – può editare e pubblicare post altrui (approvarli);
  • Author – può editare e pubblicare post propri (auto-pubblicarli);
  • Contributor – può editare post propri (senza auto-pubblicarli), previa approvazione di un Editor;
  • Subscriber – può semplicemente manipolare il proprio profilo.

Come modificare i roles di WP

Prima di rispondere al come, chiediamoci perchè vogliamo farlo: i ruoli predefiniti sono lì apposta, e se un utente deve avere maggiori (o minori) privilegi basta scalarli uno per volta da “Utenti->Tutti gli utenti“. una circostanza molto comune, del resto, è che degli utenti contributor abbiano l’opportunità discrivere articoli corredati di immagini. In questa immagine viene mostrato infatti che tale categoria di utenti del sito WordPress non possono effettuare l’upload, e questo effettivamente diventa problematico.

Schermata 2013-11-20 alle 16.37.26

Del resto un author può scrivere articoli con immagini, ma senza necessità di approvazione: se cerchiamo una via di mezzo, di fatto, è necessario per forza di cose intervenire sui ruoli.

Plugin di WordPress per modificare i ruoli

Il miglior plugin per WordPress che dovrebbe fare al caso vostro, almeno al momento attuale, è User Role Editor, che viene aggiornato spessisimo (ultimo aggiornamento è del 7 maggio 2018, momento in cui aggiorno questo post) è sostanzialmente un editor di capabilities attivabile lato amministratore.

LEGGI ANCHE:  7 domande a cui rispondere prima di installare WordPress

screenshot-1Si tratta del più pratico che ho trovato in giro, tra i prodotti gratuiti: mi pare anche che abbia un’interfaccia piuttosto immediata, per cui suggerirei di usare questo fermo restando che non è l’unica soluzione possibile (esempio: potremmo creare un ruolo intermedio tra autore e contributore ex novo e dargli tutti i privilegi che vogliamo). Ricordiamoci comunque che effettuare questo genere di modifiche, in linea di principio, crea potenzialmente delle falle di sicurezza.

Per la stessa ragione suggerisco di non usare Role Scoper (un po’ troppo complicato, secondo me), Capability Manager (obsoleto), User assign categories (obsoleto), e di preferirvi quello che ho segnalato. Assolutamente sconsigliato di adottare i vari plugin per modificare i role che non siano hostati sul sito ufficiale di WordPress, in quanto possono seriamente mettere a repentaglio la stabilità e sicurezza del vostro blog.

Di recente ho pure scovato Press Permite Core ma non ho avuto mai modo di usarlo, finora.

Modificare i roles direttamente nel theme

Un’ulteriore soluzione per modificare i ruoli consiste nell’agire direttamente sul theme, in particolare agendo sul file functions.php: l’esempio viene riportato dal blog SoulSizzle e lo ricopio qui per comodità (è anche piuttosto auto-esplicativo, se avete un minimo di conoscenze di PHP, in caso chiedete pure nei commenti). Ricordatevi pero’ che così facendo andrete a perdere le modifiche fatte una volta che cambiate theme, e progettualmente non è troppo corretto legare una modifica del genere al theme utilizzato.

if ( current_user_can('contributor') && !current_user_can('upload_files') )
	add_action('admin_init', 'allow_contributor_uploads');

function allow_contributor_uploads() {
	$contributor = get_role('contributor');
	$contributor->add_cap('upload_files');
}

Fonte: Roles di WordPress – Photo by JefferyTurner

Ti piace questo articolo?

1 voto

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Come modificare i roles di WordPress e lavorarci

Votato 10 / 10, da 1 utenti