Supporto volontario e collaborativo per Joomla!® in italiano

Panoramica sui concetti ACL di Joomla 1.6, 1.7 e 2.5

Informazioni utili

Scritto da Jen Kramer traduzione di Claudio Driussi, articolo originale

Note sulla traduzione: In questo articolo sono stati mantenuti in inglese i termini che sono in inglese anche nei siti Joomla. Ad esempio i Gruppi predefiniti Public, Registered ecc...

Questo articolo si basa su due articoli scritti in origine per Joomla 1.6 ed è stato scritto in dicembre 2011, prima del rilascio della versione 2.5. Però si presume che i concetti ACL non siano cambiati tra queste versioni, anche se ci possono essere minime differenze nell'interfaccia. Una delle più importanti innovazioni della versione 1.6 è il Access Control Lists (ACL). Si riferisce a chi ha il permesso di fare cosa nel sito web, incluso leggere, creare, modificare, cancellare, o login, oltre ad altri permessi.

Molte cose di ACL hanno relazione solo con il front-end del sito. Per esempio quando faccio il login quali articoli ho a disposizione? E se qualcun altro fa il login, può vedere gli stessi articoli o ne può vedere altri?

Comunque ACL si occupa anche di chi ha i diritti di creare, modificare, e cancellare contenuti; chi può pubblicare o sospendere contenuti; chi può fare il login nel front-end o nel back-end del sito; e chi può fare modifiche a quali componenti, moduli o templates.

Solo perché puoi non significa che dovresti! ACL è complesso, e richiede un po' di tempo per capire esattamente come funziona. Per molti siti e forse per la maggior parte, potresti non aver bisogno di modificare la configurazione predefinita di Joomla. Però se stai facendo un sito di più grandi dimensioni potrebbe tornarti utile.

Esempi in cui ACL dovrebbe essere richiesto includono:

  • Un sito di una scuola, in cui genitori, insegnanti, studenti ed il pubblico possono vedere diversi tipi di contenuti.
  • Un grande sito con molti contributori, in cui non vuoi che la gente possa cambiare i contenuti di altre persone.
  • Hai utenti che possono creare o modificare contenuti per il sito ma non è detto che abbiamo il diritto di pubblicarli. O anche di più, puoi avere più gruppi di utenti che devono creare e modificare contenuti che appartengono ad aree diverse del sito.
  • Desideri che alcuni utenti abbiano la possibilita di fare il login nel back-end del sito, ma abbiano la possibilità di modificare solo alcuni contenuti.

 

ACL nella versione 1.5 di Joomla

Joomla 1.5 ha un sistema di ACL limitato e fisso. Se in passato hai lavorato con Joomla 1.5, hai visto come impostare la visibilità di una voce di menu per il pubblico, per gli utenti registrati o per i "speciali" (autori o più). Allo stesso modo sai che gli utenti registrati non possono fare il login nel back-end del sito Joomla, mentre invece il super amministratore può. Joomla 1.5 è gerarchico, significa che ogni gruppo di utenti eredita i permessi dei gruppi soprastanti.

Una spiegazione completa dei gruppi di Joomla 1.5 si trova su brian.teeman.net. I gruppi comprendono pubblico, registrato, autore, editore, publisher, manager amministratore e super amministratore. (per publisher e manager usiamo termini inglesi perché in italiano sono sinonimi N.D.T.)

Il livello di accesso di Joomla 1.5 comprende pubblico, registrato e special. Pubblico significa che tutti possono vedere il contenuto. Registrato che coloro che hanno l'accesso registrato o maggiore possono vedere il contenuto. Special è per gli Autori e superiori. Non c'è modo di aggiungere altri livelli di accesso e neppure di segmentare l'utenza in modo più raffinato.

ACL in Joomla 1.6 o superiori: Panoramica

In Joomla 1.6+ l'ACL non è necessariamente gerarchica. Puoi configurare i gruppi con i permessi che vuoi. Questi permessi sono ereditati dai genitori nel caso dei gruppi ma non lo sono per il livello di accesso. Come minimo tutti i gruppi di utenti sono figli del gruppo Pubblico.

Ci sono quattro aspetti del sistema ACL di Joomla 1.6+. Sono l'utente, il gruppo, i permessi principali ed il livello di accesso. Ho rappresentato questi aspetti nel seguente diagramma per descrivere le relazioni, ed ora procedo a descrivere in dettaglio.

Utente (user)

Non è il più facile da capire, sei tu, o qualcun altro che visita il sito. L'utente non ha la necessità di avere un account per essere considerato utente dal sito. Quell'utente verrà comunque considerato come utente pubblico. Ogni singolo utente può essere assegnato ad uno o più gruppi. Non puoi assegnare permessi principali direttamente ai singoli utenti, si possono assegnare solo ai gruppi.

Permessi principali (Core Permissions)

I permessi principali vengono assegnati ai gruppi e non ai singoli utenti. (Se vuoi assegnare un permesso ad un singolo utente, devi creare un gruppo solo per lui.)

I permessi principali sono:

  • Login sito: Si può fare il login nel front-end del sito.
  • Login amministratore: Si può fare il login nel back-end del sito.
  • Accesso offline:Quando il sito è messo offline (nella Configurazione Globale), questo individua coloro che sono in grado di vedere il sito.
  • Super Admin: Ha i privilegi amministrativi (root) in grado di cambiare la configurazione globale. I privilegi amministrativi superano ogni configurazione ACL e danno a questo gruppo accesso completo a tutto il sistema Joomla.
  • Accesso ai componenti: Si può accedere ad aree specifiche del back-end come menu, gestione articoli, gestione media, componenti ecc...
  • Crea: Si può creare un nuovo contenuto.
  • Cancella: Si può cancellare un contenuto.
  • Modifica: Si può modificare un contenuto.
  • Modifica stato: Si può cambiare lo stato tra pubblicato, sospeso, cestinato ed archiviato.
  • Modifica elementi propri: La possibilità di modificare i propri contenuti ma non quelli degli altri.
I permessi principali vengono impostati nella Configurazione Globale sotto Sito -> Configurazione Globale, cliccando il tab dei Permessi.

 

Capire i Permessi Principali nella Configurazione Globale

Nel gruppo dei Manager che si vede sopra e negli altri gruppi escluso il Public, ogni casella di scelta mostra tre opzioni: Consentita, Negata ed Ereditata, Il gruppo Public è padre di tutti gli altri nella gerarchia e la casella di spunta mostra tre opzioni che sono Consentita, Negata e Non impostata.

  • Consentita significa che qualcosa è consentito per uno specifico gruppo.
  • Negata significa che qualcosa è negato per uno specifico gruppo.
  • Ereditata significa che qualcosa ha il comportamento derivato dal gruppo padre. Questa opzione non è disponibile per il gruppo Public che è padre di tutti gli altri.
  • Non impostata significa che il permesso non è ancora configurato. È disponibile solo per il gruppo Public e solo nella Configurazione Globale.
La spiegazione di tutti i permessi dei gruppi viene fatta più avanti.

 

Note particolari sui Permessi Principali assegnati nella Configurazione Globale

Quando i Permessi sono impostati a livello della Configurazione Globale, vengono propagati in tutto il sito. Per esempio un Autore (Author) ha il permesso Crea a livello globale. Quell'autore può creare articoli in tutte le categorie del sito. Il permesso Crea significa anche che essi possono creare nuovi Link web dal front-end del sito, se il componente Link web è attivato. Forse dovresti prestare attenzione a dove i permessi vengono assegnati in Joomla. Non dovresti impostare il permesso Crea nella Configurazione Globale se vuoi che un gruppo possa creare solo Articoli e Categorie. Potresti anche assegnare questi permessi Nelle opzioni della Gestione Articoli. Approfondirò questo argomento in un prossimo articolo.

Tutto sulla negazione

Potresti essere tentato di impostare tutte queste caselle a Consentito o Negato perché sono più facili da leggere.

Ti raccomando caldamente di NON farlo.

Se imposti Negato in un permesso, anche se metti Consentito per un gruppo ad un livello più alto, la negazione ad un livello più basso sarà ereditata ed annullerà il consenso a livello più alto.

Per esempio, se imposti il gruppo Public a Negato per tutto, non ci sarà modo di fare niente nei gruppi ereditati. A tutti sarà negato di fare qualsiasi cosa eccetto che per i Super Users.

Gruppo (User Group)

Un gruppo di utenti (chiamato anche solo Gruppo) è un gruppo di utenti che condividono gli stessi permessi. Usando i gruppi di Joomla 1.5 come esempio, il gruppo Publisher ha il permesso di fare il login nel front-end sito, creare nuovi articoli, modificare tutti gli articoli, e pubblicare o sospendere articoli. Tutti gli appartenenti del gruppo hanno il permesso di fare le stesse cose.

A differenza di Joomla 1.5 da Joomla 1.6+, un utente può essere assegnato a più gruppi. Un utente può ad esempio appartenere al gruppo Publisher e al gruppo Administrator.

Puoi creare il tuo gruppo ed assegnargli i propri permessi. I permessi sono ereditati tra i gruppi.

Un gruppo può essere creato per due differenti ragioni. La prima può essere per vedere contenuti nel front-end del sito. (I gruppi sono assegnati ai livelli di accesso per vedere i contenuti nel lato front-end.) La seconda può essere per specificare quali contenuti possono essere creati, cancellati, modificati, pubblicati, sospesi o gestiti dal gruppo.

Il visitatore del sito che non effettua login viene considerato come utente appartente al gruppo Public.

I gruppo Public non può essere cancellato mentre tutti gli altri lo possono. (Ma consigliamo di non farlo, perché forniscono un buon modello di come funziona l'ereditarietà.)

I gruppi predefiniti

Joomla 1.6+ automaticamente configura gli stessi gruppi che sono presenti in Joomla 1.5. I gruppi ed i loro permessi sono i seguenti:

  • Public: possono vedere il contenuto del front-end del sito che non è nascosto dietro ad un login. Il valore predefinito dei permessi per il gruppo Public è Non impostato. Come ci si aspetta, gli utenti Public tra le altre cose non possono fare il login nel lato pubblico del sito. Non hanno una negazione specifica per questo ma nel loro caso gli viene negato perché non hanno il permesso impostato in modo esplicito.
  • Registered: possono fare il login solo nel lato front-end del sito. Gli utenti Registered sono figli di Public con il permesso Login Sito Consentito.
  • Author: Gli autori possono creare i loro contenuti con i permessi Crea e Modifica elementi propri. Gli autori sono figli di Registered e quindi ereditano il permesso al login nel front-end del sito.
  • Editor: Gli editori possono modificare ogni contenuto del sito con il permesso Modifica. Gli Editor sono figli del gruppo Author ed ereditano i permessi Crea e Modifica elementi propri da Author ed il permesso Login sito dagli utenti Registered.
  • Publisher: I Publisher possono pubblicare, sospendere, archiviare o cestinare i contenuti per mezzo del permesso Modifica stato. I Publisher sono figli del gruppo Editor ed ereditano da loro il permesso Modifica. Ereditano i permessi Crea e Modifica elementi propri da Author ed il permesso Login sito dagli utenti Registered.
  • Manager: Manager sono figli del gruppo Public, perciò i permessi assegnati in precedenza a Registered, Author, Editor e Publisher non si applicano a Manager e quindi vengono riassegnati individualmente. Include i permessi Login sito, Login amministrazione, Accesso offline, Crea, Cancella, Modifica, Modifica Stato e Modifica elementi propri.
  • Administrator: Gli Administrator sono figli del gruppo Manager e possono configurare le estensioni con il permesso Modifica Interfaccia Amministrativa. Ereditano dal gruppo Manager i permessi Login sito, Login amministrazione, Accesso offline, Crea, Cancella, Modifica, Modifica Stato e Modifica elementi propri.
  • Super User: Il super user può cambiare la Configurazione Globale ed altre abilità con il permesso Super Amministratore. Anche i Super User sono figli di Public, ma devono attivare solo il permesso di Super Amministratore poiché questo supera tutti gli altri. Quindi il Super User ha accesso a tutte le funzioni di Joomla.
I gruppi predefiniti sono rappresentati nella Configurazione Globale (Sotto Sito -> Configurazione Globale -> Permessi.)

 

Livello di accesso (Access Level)

Il livello di accesso si riferisce a chi può vedere quali contenuti nel front-end del sito web. Essenzialmente questo comporta la lettura dei permessi nel front-end del sito.

Storicamente ci sono tre livelli di accesso: public (tutti possono vedere), restricted (devi fare il login per vedere il contenuto), o special (devi fare il login come author o superiore per vedere il contenuto).

Questi livelli di accesso sono ancora presenti in Joomla 1.6+ come livelli predefiniti, però puoi anche creare i tuoi livelli di accesso personali.

I livelli di accesso non ereditano i loro permessi. Se un articolo è reso visibile solo per i publishers con un livello di accesso personalizzato, nemmeno il super administrator lo potrà vedere. Dovrai assegnare al super user al gruppo dei publisher per poter vedere l'articolo dal lato front-end del sito, oppure dovrai assegnare ai publisher e al super user lo stesso livello di accesso. (In ogni caso, come super user potrai comunque modificare l'articolo dal bach-end.)

Che cosa succede dopo?

Sto scrivendo una serie di casi di studio che potrete seguire per mettere in azione questi principi. Gli esempi comprenderanno:

  • Diversi utenti vedono diversi contenuti nel front-end del sito
  • Un back-end ritagliato per semplificare li lato amministrativo per gli utenti.

CommentaCommenta questo articolo sul forum
Commenta su G+Oppure commenta e condividi questo articolo sulla nuova pagina ufficiale di Joomla.it su Google+