Supporto volontario e collaborativo per Joomla!® in italiano

Che cosa bisogna sapere su Joomla 1.6 Parte 3: Gestione dei permessi (ACL)

Questo è il terzo di una serie di post del blog sui cambiamenti in Joomla 1.6.
Nel secondo post Kistoffer Sandven ha descritto i miglioramenti nella gestione delle categorie degli articoli in Joomla! 1.6.
In questo terzo post Kristoffer Sandven di JoomlaBlogger.net ci parla della gestione dei permessi.


Se hai sentito qualcosa su Joomla 1.6, è probabile che avrai sentito parlare di due nuove e interessanti funzionalità: le categorie annidate e qualcosa chiamato ACL.

ACL sta per access control levels (gestione dei livelli d'accesso). Riguarda a chi ha le autorizzazioni per fare qualcosa nel sito web incluso, leggere, creare, modificare, cancellare e accedere al sito.

Molti pensano che ACL si riferisca solamente al front end di un sito web. Per esempio, quali articoli posso leggere quando accedo nel sito web? E se un altro utente accede nel sito, vede gli stessi articoli oppure quelli che vedrà sono diversi?

Tuttavia, ACL si riferisce anche a chi ha i permessi per creare, modificare, ed eliminare un contenuto, a chi può accedere nel front end o nel back end del sito e a chi, può modificare componenti e moduli.


Solo perchè è possibile farlo, non significa che si dovrebbe
! L'ACL è complesso, e ci vuole un pò di tempo per capire come funziona. Per molti siti, forse per la maggior parte, potrebbe andare bene la configurazione predefinita di Joomla. Tuttavia, se stai realizzando un sito grande, potrebbe esserti d'aiuto.

Esempi in cui l'ACL potrebbe essere necessario:

  • Compagnia intranet, dove alcuni managers vedono un livello di contenuti, mentre gli impiegati un altro.
  • Sito di una scuola, dove genitori, studenti, e visitatori vedono diversi tipi di contenuto.
  • Un grande sito web con molti collaboratori, in cui non si vuole che gli utenti modifichino i contenuti di altrui.
  • Un sito con diversi blog, dove gli autori non possono creare o modificare i messaggi degli altri blog.

L'ACL in Joomla 1.5

Gli ACL di Joomla 1.5 sono limitati. Se avete lavorato con Joomla 1.5, avrete visto come può essere impostata una voce di menù, o un articolo, per essere visibile agli utenti registrati o speciali (autori o superiori). Probabilmente sapete che gli utenti registrati non possono accedere nel back end di un sito Joomla, al contrario di un super administrator. L'ACL di Joomla 1.5 è gerarchica, nel senso che ogni gruppo di utenti eredita le autorizzazioni da parte dei gruppi sotto di esso.

Potete trovare una spiegazione completa dei gruppi di Joomla 1.5 su brian.teeman.net. I gruppi includono lato pubblico, Registered, Author, Editor, Publisher, Manager, Administrator, Super Administrator.

I livelli di accesso di Joomla 1.5 includono public, registered e special. Potete trovare una spiegazione dei livelli di accesso su Revision Technology.

ACL in Joomla 1.6: Panoramica

L'ACL di Joomla 1.6 non è gerarchica. Possiamo impostare i gruppi con tutti i permessi che vogliamo. I permessi sono ereditati dal gruppo genitore nel caso dei gruppi, ma non sono ereditati dai livelli di accesso.

Questi sono quattro aspetti del sistema ACL in Joomla 1.6. Includono utenti, gruppi, permessi di base e i livelli di accesso. Gli ho rappresentati nello schema seguente per descrivere il rapporto tra di loro e poi, li analizzerò in dettaglio.

User

Questo è il più semplice da capire. Sei tu, o chiunque visita il sito web. Un user non deve essere necessariamente registrato per essere reputato un utente del sito in quanto, potrebbe essere considerato un utente pubblico. Ogni utente può essere assegnato a uno o più gruppi. Invece, non è possibile assegnare le autorizzazioni di base agli utenti, queste sono assegnate ai gruppi.


Autorizzazioni di base

Le autorizzazioni di base sono assegnate al gruppo, non ai singoli utenti. (Se volete assegnarle a un singolo utente, dovrete creare un gruppo per quel singolo utente.)

Le autorizzazioni di base includono:

  • Login al sito: la possibilità di accedere al front end del sito.
  • Admin login: la possibilità di accedere al back end del sito.
  • Admin: privilegi amministrativi, come la possibilità di cambiare la configurazione globale.
  • Gestione: la possibilità di cambiare le impostazioni delle estensioni.
  • Creare: la possibilità di creare un nuovo contenuto.
  • Cancellare: la possibilità di eliminare un contenuto.
  • Modifica: la possibilità di modificare tutti i contenuti esistenti.
  • Modifica stato: la possibilità di cambiare stato tra pubblicato, non pubblicato, cestino.

Le autorizzazioni di base si impostano da Configurazione Globale cliccando nella tabella Permessi. Spiegherò meglio questa possibilità nel secondo articolo sulle ACL.

Gruppi

Un gruppo è un insieme di utenti che hanno gli stessi permessi. Prendendo per esempio i gruppi di Joomla 1.5, il gruppo publisher può loggare nel front end del sito, creare nuovi articoli, modificare quelli già esistenti, renderli pubblici o annullare la pubblicazione. Tutti gli utenti del gruppo publisher hanno gli stessi permessi.

In Joomla 1.6, un utente può essere assegnato a più gruppi, per esempio nel gruppo publisher e nel gruppo administrator.

E' possibile assegnare le autorizzazioni di base ai gruppi creati. Le autorizzazioni di base vengono ereditate tra i gruppi.

Un gruppo potrebbe essere creato per due diverse ragioni. Una per vedere il contenuto nel front end del sito, l'altra, per specificare quale contenuto può essere creato, modificato, cancellato, pubblicato o non pubblicato e modificato da un gruppo specifico.

Un utente non registrato sul sito viene considerato appartenente al gruppo Public.

Il gruppo Public e il gruppo Registered non possono essere eliminati al contrario di tutti gli altri gruppi. (Comunque, vi consigli di tenerli, perchè danno un buon modello su come funziona l'ereditarietà delle autorizzazioni.)

Livelli d'accesso

I livelli d'accesso riguardano, a chi può e a cosa può vedere, nel front end del sito web. In sostanza, sono le autorizzazioni di lettura sul front end del sito.

Storicamente ci sono stati tre livelli di accesso: public (tutti possono vedere i contenuti), registered (si deve accedere sul sito per vedere i contenuti), special (bisogna avere un livello author o superiore per vedere il contenuto).

Questi livelli di accesso sono ancora presenti in Joomla 1.6 come default, ma si possono creare dei livelli d'accesso personalizzati.

I livelli di accesso non ereditano i permessi. Se si imposta un articolo visibile solo dai publishers, anche i super admin non potranno vederlo. (Comunque, con i permessi di super admin, si potrà modificare dal back end.)

Voglio che diverse persone vedano diversi contenuti quando accedono nel sito

Ora che hai una conoscenza della terminologia ACL, proviamo a realizzare un sistema semplice con Joomla 1.6.

Prima di iniziare è necessario impostare una strategia ACL per il sito web. Iniziamo con la descrizione del problema che stiamo cercando di risolvere:

Per il sito web della scuola che sto sviluppando:

  • Il pubblico può visitare il sito e vedere la maggior parte dei contenuti. Tuttavia, ci sono dei contenuti riservati per studenti e insegnanti.
  • Un insegnante può vedere i contenuti riservati agli insegnanti, tutti i contenuti riservati agli studenti e il contenuto pubblico.
  • Gli studenti possono vedere solamente i contenuti riservati a loro (non i contenuti riservati agli insegnanti) e i contenuti pubblici.

Nota che abbiamo parlato solo dei contenuti che possono essere visti e non abbiamo parlato di modifica, creazione e gestione dei contenuti. Questo indica un problema di lettura o un problema con i livelli di accesso.

Quindi, abbiamo tre gruppi: public, studenti e insegnanti. Il gruppo public è già esistente, ma dovremo creare i gruppi studenti e insegnanti e assegnarli i permessi per accedere al front end del sito.

Provvederemo quindi a creare i nostri contenuti in modo tale che gli insegnanti vedano tutti i contenuti, insegnanti e studenti, mentre gli studenti solo i contenuti per gli studenti.

Procederemo in questo modo:

  1. Creare i gruppi "studenti" e "insegnanti".
  2. Assegnare le autorizzazioni di base ai gruppi. In questo caso il permesso di login al sito.
  3. Creare gli utenti e assegnarli ai rispettivi gruppi.
  4. Creare i livelli di accesso per studenti e insegnanti.
  5. Creare le categorie per studenti e insegnanti e assegnare il livello di accesso corretto.
  6. Creare le voci di menù per studenti e insegnanti e assegnargli il livello di accesso corretto.
  7. Provare il login e vedere se tutto funziona correttamente.

1. Creare i gruppi

Per creare un gruppo, accediamo nel back end del sito Joomla 1.6.

Nel menù superiore andiamo su Utenti - Aggiungi nuovo gruppo. Vedremo questa schermata.

  1. Nel campo Titolo Gruppo inseriamo Gruppo Insegnanti
  2. Nel campo Gruppo Principale scegliamo Registered. I gruppi Registered e Insegnanti avranno le stesse autorizzazioni (cioè, potranno accedere al front end del sito). Gli Insegnanti saranno un sotto gruppo degli utenti Registered.
  3. Clicchiamo su Salva e Nuovo in alto a destra per salvare il gruppo Insegnanti e creare un nuovo gruppo.
  4. Inseriamo Gruppo Studenti nel campo Titolo Gruppo.
  5. Nel campo Gruppo Principale scegliamo Registered. In questo modo Studenti e Insegnanti avranno lo stesso livello di accesso.
  6. Clicchiamo su Salva e Chiudi per tornare nella schermata User Manager: Gruppi.

2. Assegnare le autorizzazioni di base

I gruppi Studenti e Insegnanti, hanno ereditato le autorizzazioni di base del Gruppo Principale. Il gruppo Registered ha impostato per default l'autorizzazione per accedere al front end del sito, quindi, in questo caso, non abbiamo bisogno di assegnare altri permessi ai gruppi.

3. Creare Utenti, assegnare ai Gruppi

Ora che abbiamo creato i gruppi, dovremo creare degli utenti e assegnarli ai gruppi.

Andiamo su Utenti - Aggiungi Nuovo Utente

  • Nome: Inseriamo il nome completo, in questo caso Ms. Jones.
  • Nome utente: Inseriamo il nome utente: msjones.
  • Password e Conferma Password: Inseriamo la stessa password in entrambi i campi.
  • Email: Inseriamo l'indirizzo email dell'utente.

Lasciamo impostate come default le Impostazioni di base e passiamo ai Gruppi Assegnati. Per impostazione predefinita, il gruppo Registered è selezionato e Public è in grigio. Questo ci ricorda che il gruppo Registered eredita i permessi del gruppo Public.

Scegliamo Insegnanti dalla lista. Notare che ora le opzioni Registered e Public sono in grigio. Questo perchè entrambi i gruppi, Registered e Insegnanti, hanno come gruppo genitore Public.

Clicchiamo su "Salva e Nuovo", e ripetiamo lo stesso procedimento per un user Studente. Il nome dello studente è Dave Smith e l'username è david. Assegniamo David al gruppo studenti e clicchiamo su Salva e Chiudi.


4. Creare i livelli di accesso

Ora che abbiamo gli utenti, le autorizzazioni di base e i gruppi, non ci resta che creare due livelli di accesso, uno per gli studenti e uno per gli insegnanti.

Andiamo su Utenti - Aggiungi Nuovo Livello di Accesso

Nel campo Nome Livello, inseriamo Accesso Insegnanti. Selezioniamo la casella vicino al Gruppo Insegnanti. In questo modo solo il gruppo selezionato potrà vedere i contenuti del Gruppo Insegnanti.

Clicchiamo su Salva e Nuovo, e inseriamo Accesso Studenti come Titolo Livello e selezioniamo le caselle Gruppo Insegnanti e Gruppo Studenti. Ciò consentirà agli Insegnanti di visualizzare entrambi i contenuti.

5. Creare le Categorie

Creiamo una categoria per gli insegnanti (Contenuti - Nuova Categoria):

Creiamo anche una categoria per gli studenti e selezioniamo Accesso Studenti. Configuriamo le categorie nello stesso modo tranne che per l'accesso.

6. Creare gli Articoli

Prepariamo un articolo per gli Insegnanti nella categoria Insegnanti. Per creare un nuovo articolo andiamo su Contenuto - Nuovo Articolo.


Compiliamo i campi in questo modo

  • Titolo: Questo articolo è per gli Insegnanti
  • Categoria: Categoria Insegnanti
  • Stato: Pubblicato
  • Accesso: Accesso Insegnanti
  • Testo Articolo: inserire un testo fittizio.

Clicchiamo su Salva e Nuovo e ripetiamo l'operazione per gli Studenti:

  • Titolo: Questo articolo è per gli Studenti
  • Categoria: Categoria Studenti
  • Stato: Pubblicato
  • Accesso: Accesso Studenti
  • Testo Articolo: inserire un testo fittizio.

Clicchiamo su Salva e Chiudi appena finito.

7. Creare le voci di menu

Organizziamo le voci di menù. Nel menù principale ( Menù - Menù Principale), aggiungiamo due voci, una per gli insegnanti e una per gli studenti.

Per creare il collegamento, clicchiamo su Nuovo (in alto a destra), scegliamo Lista Categorie come tipo di menù e inseriamo le informazioni come nella screen qua sotto:

  • Titolo: Informazioni insegnanti
  • Tipo di menù: clicchiamo su Selezione, quindi Lista Categoria
  • Stato: Pubblicato
  • Accesso: Accesso Insegnanti
  • Scegli una Categoria: Categoria Insegnanti

Clicchiamo su Salva e Nuovo e ripetiamo il procedimento per gli studenti:

  • Titolo: Informazioni studenti
  • Tipo di menù: clicchiamo su Selezione, quindi Lista Categoria
  • Accesso: Accesso Studenti
  • Scegli una Categoria: Categoria Studenti

Clicchiamo su Salva e Chiudi.

8. Testiamo i login

Finalmente abbiamo configurato tutto per avere diversi contenuti per studenti e insegnanti nel nostro sito.

Prima del test, disabilitiamo la cache nel sito web andando su Sito - Configurazione Globale, Tabella System e impostiamo la cache su off (Questo è dovuto a un bug in Joomla 1.6 Beta 6.)


Clicchiamo su "Salva e Chiudi".

Ora, andiamo nel front end del sito. Inseriamo msjones come username e la password che abbiamo scelto per l'insegnante Ms. Jones.

Se tutto è stato impostato correttamente, dovresti vedere due collegamenti nel menù principale, "Informazioni Insegnanti" e "Informazioni Studenti".

Facciamo il log out e inseriamo i dati d'accesso per lo studente David Smith.

Ora nel menù principale dovresti vedere la sola voce "Informazioni Studenti".


Conclusioni

Se avete seguito questa guida fino alla fine, probabilmente ci avrete messo 15 minuti per completarla, forse un po' di più se usate Joomla 1.6 da poco tempo.


Solo perchè è possibile farlo, non significa che si dovrebbe! L'ACL può richiedere molto tempo per te e per il tuo cliente, e potrebbe essere estremamente complicato da usare. Bastano poche impostazioni errate per far si che le persone sbagliate vedano le informazioni sbagliate, quindi state molto attenti nei vostri test e assicuratevi che tutto funzioni correttamente.

Nel mio prossimo articolo sull'ACL, spiegherò come impostare i permessi per: creare, modificare ed eliminare i contenuti; accedere nel front end o nel back end del sito; gestire le estensioni e le autorizzazioni d'amministrazione.

Articolo scritto da Kristoffer Sandven su Joomla.org e tradotto da Simone Sarigu