Drupal e la gestione dei permessi di amministrazione

Drupal e la gestione dei permessi di amministrazione

La gestione dei permessi in Drupal, come anche negli altri CMS, è un fattore rilevante soprattutto quando si realizza un sito web che deve essere usato attivamente da più utenti. I permessi possono essere configurati per stabilire diversi livelli di accesso ai contenuti, ma anche per abilitare determinati utenti ad effettuare operazioni di manutenzione ed amministrazione del sito web. Drupal 6 non permette nativamente una elevata granularità della configurazione dei permessi di amministrazione, per questo motivo sono stati realizzati moduli Drupal che ne estendono le funzionalità.

Configurare Drupal per assegnare i privilegi di gestione dei termini

Tra le varie necessità di configurazione di un sito in Drupal può essere richiesto di permettere a determinati utenti l'amministrazione dei termini nei vocabolari. Il permesso offerto da Drupal è di poter amministrare completamente tutto il sistema di tassonomia (ovvero l'insieme dei vocabolari e dei termini), ma questo comporta anche la capacità di poter eliminare ed aggiungere vocabolari.

Se invece si vuole permettere esclusivamente la modifica del contenuto dei vocabolari, ovvero la creazione, modifica o l'eliminazione dei termini, è necessario usare un modulo Drupal specifico: Taxonomy term lock. Grazie a questo modulo vengono forniti nuovi permessi del tipo "amministra termini per il vocabolario N" che possono venire assegnati ad un ruolo.

Patch per Taxonomy term lock

L'ultima versione rilasciata, 6.x-2.0-beta3, contiene un piccolo bug: il link "modifica vocabolario" viene visualizzato anche se l'utente non ne ha i permessi. Finché non uscirà una prossima versione è quindi necessario corregere il modulo Drupal applicando questa semplice patch:

--- term_lock.module-old	2010-05-07 02:28:04.000000000 +0200
+++ term_lock.module	2010-05-07 02:23:13.000000000 +0200
@@ -131,6 +131,9 @@ function term_lock_form_alter(&$form, $f
   else if ($form_id == 'taxonomy_overview_vocabularies') {
     foreach (element_children($form) as $key) {
       if ($vocabulary = taxonomy_vocabulary_load($key)) {
+        if (!user_access('administer taxonomy', $user)) {
+          unset($form[$key]['edit']);
+        }
         if (! term_lock_vocabulary_access('list', $vocabulary)) {
           unset($form[$key]);
         }

Installare e configurare il modulo Drupal taxonomy term lock

La procedura di installazione di Taxonomy term lock è la stessa di tutti gli altri moduli Drupal. È sufficiente scaricare il pacchetto .tar.gz dal sito ufficiale e scomprimerlo nella directory /sites/all/modules dopodichè si deve abilitare il modulo dalla pagina di ammistrazione dei moduli.

Anche la configurazione è semplicissima: nella pagina di gestione dei permessi Drupal si scelgono quali ruoli abilitare alla amministrazione dei singoli vocabolari.