Corsi on-line

WordPress: restringere l’accesso all’amministrazione ai soli Admin

Il Blog engine Open Source WordPress mette a disposizione un sistema per la gestione dei ruoli meno performante rispetto a quello di applicazioni dello stesso tipo, ma comunque sufficiente per assegnare permessi e privilegi ai vari soggetti che partecipano alla vita di un progetto Web based (Admin, editori, autori e semplici contributors). Tutti gli utenti associati ai ruoli hanno diritto di accesso all’area di amministrazione, una condizione che potrebbe non essere considerata ottimale per tutte le tipologie di installazione.

WordPress

Per fare un esempio, si prenda il livello più basso tra quelli definibili attraverso la gerarchia di WordPress, quello di Sottoscrittore (Subscriber), anche quest’ultimo sarà in grado di accedere all’area di amministrazione; i suoi privilegi si riveleranno naturalmente molto limitati, egli infatti potrà al massimo modificare le informazioni relative al proprio profilo. Ma se tale funzionalità non dovesse essere necessaria per il proprio progetto, varrebbe veramente la pena di mantenerla attiva?

Nel caso in cui si voglia “chiudere la porta” dell’amministrazione a tutti gli utenti associati ad un ruolo che non siano degli Admin, è possibile sfruttare una determinata action fornita da WordPress che prende in nome di admin_init(), essa potrà essere utilizzata per richiamare funzioni specifiche e svolge un compito particolarmente importante per quanto riguarda le dinamiche di accesso al Pannello di controllo dell’applicazione, questo perché viene chiamata per prima di qualsiasi altra action (o hook) destinata a influenzare lo stesso componente del Blog engine.

Il seguente snippet dovrà essere inserito all’interno del file “functions.php”:

function restrict_admin()
{
	if ( ! current_user_can( 'manage_options' ) ) {
                wp_redirect( site_url() );
                exit;
	}
}
add_action( 'admin_init', 'restrict_admin', 1 );

In pratica la funzione rileva il ruolo dell’utente che cerca di autenticarsi nell’area di amministrazione, se questo non dovesse essere un amministratore, allora il processo di login verrà bloccato.

Via Codex WordPress admin_init

Post correlati
I più letti del mese
Tematiche