Le ACL di Joomla 2.5. Un esempio pratico

Acquisire un pò di pratica con la terminologia e le funzioni dei permessi (ACL) diventa essenziale se vogliamo costruire un sito con la Joomla 2.5 che preveda che una cerchia ristretta di utenti abbiano accesso a parte del contenuto. Per intenderci meglio traduco, con qualche piccola modifica, l'articolo apparso nel Joomla Community magazine di febbraio scritto da Jen Kramer in cui si cerca di implementare un semplice sistema ACL in cui gli utenti possono vedere contenuti diversi su di un sito web.

L'articolo presenta una strategia di ACL riferita al sito di una scuola dove genitori, insegnanti e studenti hanno accessi a contenuti diversificati secondo interesse. Per l'attuazione ed il funzionamento delle ACL il consiglio è di iniziare descrivendo il problema che si sta cercando di risolvere e proseguire per gradi nel creare gerarchie e ereditarietà che regolano la fruizione dei contenuti presenti.

L'esempio, come detto, prende in esame lo sviluppo del sito di una scuola dove:

•    Il pubblico può visitare quel sito e vedere la maggior parte dei contenuti. Tuttavia, vi è parte del "contenuto dietro le quinte" utile solo a studenti e insegnanti.
•    Un insegnante può visualizzare il contenuto specifico per gli insegnanti, tutti i contenuti per gli studenti e il contenuto pubblico.
•    Gli studenti possono vedere solo i contenuti per gli studenti (non i contenuti insegnante) e il contenuto pubblico.

Quindi, abbiamo tre gruppi: il pubblico, gli studenti e gli insegnanti. Il gruppo pubblico esiste già, ma abbiamo bisogno di creare altri due gruppi che comprendono tutti gli  studenti e gli insegnanti.
Chiaramente, per creare questi gruppi, gli utenti (insegnanti e studenti) devono registrarsi al sito in modo da poter accedere da front-end. Ci sarà quindi bisogno di creare i nostri contenuti in modo tale che gli insegnanti possano vedere sia quelli per gli studenti oltre che quelli per gli insegnanti, mentre gli studenti devono vedere solo il contenuto ad esso rivolto.

Il nostro approccio a questo problema sarà come segue:


1.    Creare i nostri gruppi, chiamadoli per comodità "studenti" e "insegnanti".
2.    Assegnare le autorizzazioni di base per il gruppo. In questo caso, stiamo assegnando l'autorizzazione di accesso.
3.    Creare i nostri utenti e assegnarli ai due gruppi. Ad esempio, creerò un utente chiamato "studente" e uno chiamato "insegnanti", ma tieni in considerazione che si possono avere molti account, e diversi gruppi, da creare.
4.    Creare un livello di accesso per gli studenti e un altro livello di accesso per gli insegnanti.
5.    Creare le categorie per studenti e quelli per gli insegnanti e assegnare ad esse livelli di accesso corretti.
6.    Creare articoli per studenti e per gli insegnanti e assegnare i livelli di accesso corretti.
7.    Creare dunque voci di menu per studenti e insegnanti e assegnare i livelli di accesso corretti.
8.    Provate i nostri dati di accesso e vedere se funzionano correttamente.

Vediamo ora come impostare praticamente il tutto, analizzando ad uno ad uno i punti sopra elencati.

1. Creare i nostri Gruppi

Per creare un gruppo, accedere al back-end del sito Joomla.
Vai al menu principale e poi su Utenti --> Aggiungi nuovo gruppo. Vedrete questa schermata.


1.    Per il titolo del gruppo, immettere Insegnanti.
2.    Per la Capogruppo, scegliere Pubblico.
3.    Fare clic sul pulsante Save & New visualizzato in alto a destra per salvare il gruppo insegnanti e contemporaneamente creare un nuovo gruppo.
4.    Per il titolo del gruppo, immettere dunque studenti.
5.    Per la Capogruppo, scegliere Pubblico.
6.    Fare clic su Salva e chiudi per salvare il nostro gruppo di studenti e tornare alla User Manager.

Quando ci si appresta a creare gruppi di utenti nidificati, in particolare quando si sta appena iniziando a lavorare con ACL, le autorizzazioni possono complicarsi molto rapidamente. Facendo sottogruppi del gruppo pubblico è possibile controllare direttamente, e senza troppe complicazioni, le autorizzazioni del gruppo piuttosto che gestire attraverso l'eredità da altri gruppi i permessi che se troppo complicati finiranno per farci in breve tempo esaurire (consiglio spamodico da seguire).

2. Assegnare le autorizzazioni di base

Andiamo in Configurazione Globale nella scheda Autorizzazioni. Per il Gruppo Studenti e insegnanti, impostare l'autorizzazione del Sito Login Consentito. Lasciare tutte le altre impostazioni come ereditate. Ricorda che questi gruppi ereditano le autorizzazioni dal gruppo pubblico, così per impostazione predefinita, gli studenti e i gruppi insegnanti non sono autorizzati a fare qualsiasi cosa, ma segueno i permessi impostanti nel gruppo pubblico.

3. Creare utenti e assegnarli ai gruppi

Ora che abbiamo creato i nostri gruppi abbiamo bisogno di creare alcuni utenti per ravvivare questi gruppi e consentirci di fare delle prove.
Per fare questo, andare su Utenti --> Aggiungi un nuovo utente, e vedrete la seguente schermata:


•    Nome: Inserire il nome completo dell'utente, in questo caso, la signora Giovanna.
•    Nome di accesso: Inserire un nome utente per questa persona: insegnante.
•    Password e Conferma password: Digitare la stessa password due volte.
•    Email: Inserisci l'indirizzo email dell'utente. Salta gli altri campi di questa pagina e scorrere verso il basso sino a gruppi assegnati. Si noti che per impostazione predefinita, registrato è già selezionato.

Scegliere "Professori (insegnanti)" dalla lista gruppi. Ex: La signora Giovanna, insegnante, è assegnata sia al gruppo di utenti registrati e sia al gruppo insegnanti.
Fare clic su "Salva e Nuovo" e quindi ripetere la stessa procedura per uno o più account di accesso degli studenti. Il nome dello studente è Davide e la sua username è david. Assegnare David al Gruppo studenti e al gruppo registrato. Scegliere Salva e chiudi quando hai finito.

A volte si desidera avere informazioni per un account che è visibile a chiunque sia connesso piuttosto che a un gruppo specifico di utenti. Assegnando gli utenti al gruppo di utenti registrato in aggiunta a gruppi più specifici è possibile (per esempio) permette di visualizzare un menu utente a chiunque sia connesso, ma alcune voci di menu specifiche a gruppi di utenti specifici.

4. Creare Livelli di accesso

Abbiamo i nostri utenti, i permessi di base, e gruppi di utenti tutti insieme. Ora è il momento di creare due livelli di accesso, uno per gli studenti e uno per gli insegnanti.

Andate su Utenti --> Aggiungi nuovo livello di accesso, e dovreste vedere questa schermata:



Per il titolo Livello, inserire insegnanti e poi selezionare le caselle accanto al gruppo insegnanti. Questo permetterà di vedere il contenuto solo agli insegnanti del Gruppo Insegnanti.
Fare clic su Salva e Nuovo, immettere l'accesso a livello studenti e controllare il gruppo di Studenti e Insegnanti abbiano spuntata la caselle di gruppo. Ciò significa che gli insegnanti possono visualizzare il contenuto destinato agli studenti oltre a quello per gli insegnanti. Fare clic su Salva e chiudi per uscire da questa schermata.

Ricorda che i Livelli di accesso sono fondamentali per selezionare chi deve vedere determinati contenuti. Pensate attentamente a quali gruppi dovrebbero essere inclusi in ciascun livello di accesso.

5. Creare categorie

Su questo sito, ho creato una categoria di contenuti specifico per gli insegnanti (in Contenuto --> Aggiungi Nuova Categoria):

Quando si crea questa categoria, assicurarsi di impostare l'accesso nel menù a tendina (che è il livello di accesso) al livello Insegnante.
Ho anche creato una categoria per gli studenti e istituito nello stesso modo l'accesso al livello studenti.


È possibile creare contenuti in altre categorie e assegnare il livello di accesso articolo per articolo. Per la maggior parte degli articoli è possibile impostare il livello di accesso pubblico, ma si potrebbe fare un'eccezione per il livello di accesso Registrati, per il livello di accesso Insegnanti o per il livello di accesso studenti se in qualche caso se ne presentasse la necessità.
Tuttavia, raggruppare articoli sotto una categoria specifica aiuta a chiarire il target per un contenuto e per il livello di accesso. Ricorda che si possono sempre creare delle sottocategorie all'interno della categoria degli insegnanti allo scopo di gestire al meglio un alto numero di contenuti per ogni singola categoria.
Una volta impostato il livello di accesso per una categoria, il livello di accesso viene ereditato per tutti gli articoli di quella categoria anche se in questi si lascia il livello di accesso impostato su pubblico.

6. Creare articoli

Arriva il momento di creare un articolo per gli insegnanti da inserire ovviamente nella categoria insegnanti. Per creare un nuovo articolo, vai in contenuto --> Aggiungi Nuovo articolo.

I campi da completare:
•    Titolo: Questo articolo è per gli insegnanti
•    Categoria: Insegnanti
•    Stato: Pubblicato
•    Accesso: Insegnanti
•    L'articolo del testo: Inserire un testo fittizio.
Fare clic su Salva e nuovo, quindi ripetere il processo per gli studenti:
•    Titolo: Questo articolo è per gli studenti
•    Categoria: Categoria Insegnanti
•    Stato: Pubblicato
•    Accesso: studenti
•    L'articolo del testo: Inserire un testo fittizio.
Fare clic su Salva e chiudi quando hai finito.

7. Creare voci di menu

Nel menu principale (Menu --> menu principale), aggiungeremo due collegamenti, uno per gli insegnanti e uno per gli studenti.
Per creare il link, sono andato in New (in alto a destra), e ho scelto Lista categoria per il tipo di voce di menu:



•    Titolo: Informazioni Insegnanti
•    Voce di menu Tipo: Fare clic su Seleziona, quindi Lista Categoria
•    Stato: Pubblicato
•    Accesso: Insegnanti
•    Scegli una categoria: Categoria Insegnanti
Fare clic su Salva e nuovo, e ripetere il processo per gli studenti:
•    Titolo: Informazioni per gli studenti
•    Voce di menu Tipo: Fare clic su Seleziona, quindi Lista Categoria
•    Stato: Pubblicato
•    Accesso: Studenti
•    Scegli una categoria: Categoria Studenti
Fare clic su Salva e chiudi quando hai finito.

Ricorda che, nel caso di voci di menu, il loro livello di accesso è indipendente dal contenuto a cui si collegano. In altre parole, si potrebbe avere un articolo con un livello di accesso insegnanti, ma lasciare la voce di menu ad un livello di accesso pubblico. Se si esegue questa operazione, a condizione che il modulo di visualizzazione del menu è impostato con un livello di accesso pubblico, il collegamento sarà visibile a chiunque visiti il sito. Quando si fa clic, se il visitatore non dispone dei diritti per vedere il contenuto, verrà visualizzato un messaggio che indica che non ha le credenziali di accesso.
Questo potrebbe essere l'esatto comportamento che si potrebbe desiderare per un sito dove si sta cercando di vendere degli abbonamenti di accesso alla visualizzazione delle informazioni. Nella maggior parte dei casi però è buona idea impostare il livello di accesso per la voce di menu in modo che corrisponda al contenuto a cui si collega.

8. Provate i nostri account di accesso

Abbiamo finalmente configurato tutto il necessario per avere un contenuto diverso visibile per studenti e altri visibili agli insegnanti su un unico sito web.
Per sperimentare che tutto funzioni come da impostazioni inserite, vai nel front-end del sito e inserisci i dati di accesso nella finestra di login.
Immettere, ad esempio, il nome utente e la password per  la signora Giovanna.
Se tutto è stato fatto per bene dovreste vedere due link nel menu principale; "Informazioni Insegnanti" e  "Informazioni Studenti". OK
Tornare ora alla pagina di login, sloggarsi e ripetete il processo di accesso come David, lo studente.
Se hai fatto tutto per bene dovresti vedere un solo collegamento nel menu principale dal titolo "informazione per lo studente" e nessun altra voce di menù che non sia pubblica.

Conclusione

Hai letto in questo post solo i riferimenti alla creazione di gruppi che hanno accesso a categorie e contenuti, ma lo stesso procedimento potrà assere adattato anche a componenti, moduli e a tutto quello che abbiamo intenzione di installare sul nostro Joomla. Il consiglio è di provare abbondantemente con l'esempio appena descritto prima di qualsiasi altra mossa, perchè capire le ACL è fondamentale per la costruzione di un sito web che preveda una certa interazione con gli utenti registrati a cui assegnare permessi diversi.

Liberamente tradotto ed adattato dall' articolo originale di Jen Kramer sul magazine di Joomla.

Letto 19347 volte

5 commenti

  • Link al commento Giuseppe Domenica, 19 Febbraio 2012 22:46 inviato da Giuseppe

    Ciao, ho seguito il tuo esempio qui riportato e funziona alla grande ma c'è un però.

    Se io voglio che 1 studente ha un modulo specifico come posso fare? mi spiego meglio.

    Vorrei assegnare all'utente Carlo un modulo così potrà fare determinate azioni al sito. Ma gli altri studenti quindi che fanno parte dello stesso gruppo non possano vedere il progetto di Carlo e quindi il modulo non deve essere accessibile.

    Non voglio far creare a Carlo un'altra registrazione, insomma in poche parole mi basterebbe che quando fa il login Carlo e solo per lui può interagire con il modulo specifico.

    spero che mi hai capito ahhahaha ciao e aspetto una tua risposta positiva

    Rapporto
  • Link al commento taolo | joomla blog Lunedì, 20 Febbraio 2012 18:53 inviato da taolo | joomla blog

    Ciao. Hai provato a creare un nuovo gruppo e ad inserire solo carlo?

    Rapporto
  • Link al commento marco Lunedì, 30 Aprile 2012 16:15 inviato da marco

    Ottimo articolo! rimane un problema essenziale a cui fin'ora non ho trovato soluzione: permettere durante la fase di registrazione, di scegliere il gruppo d'appartenenza. In questo caso occorre sempre che il super amministratore inserisca gli utenti nei gruppi specifici, uno per uno. Se si ha un'intera scuola da fare, diventa problematico...

    Rapporto
  • Link al commento Giorgio Lunedì, 22 Ottobre 2012 16:28 inviato da Giorgio

    Salve,
    bellissimo articolo. Avrei una domanda. Ho già postato sul forum joomla qui http://forum.joomla.it/index.php/topic,172428.0.html
    come già descritto nel post non riesco ad accedere alla pagina di amministrazione di joomla e i campi dove inserire nome utente e password sono spariti anche se clicco su "Esci" non accade nulla.
    È possibile ripristinare la politica dei permessi e degli accessi attraverso SQL?

    Grazie
    Giorgio

    Rapporto
  • Link al commento Vincenzo Giovedì, 01 Novembre 2012 10:32 inviato da Vincenzo

    Salve, ottimo articolo. Devo segnalare però un'errore (sicuramente un refuso di copia ed incolla) nel paragrafo "Creare Articoli". In particolare quando viene creato il nuovo articolo per gli studenti la categoria da assegnargli è "Categoria: Studenti" e non "Categoria: Insegnanti".
    Sicuro di aver fatto cosa gradita nel segnalare questo piccolo errore, ringrazio ancora l'autore per l'ottimo articolo.

    Rapporto

Lascia un commento

Assicurati di inserire (*) le informazioni necessarie ove indicato.
Codice HTML non è permesso.

Segui BlogJoomla.it su Google Plus

Ultimi Articoli

You are here:   Joomla Blog HomeGuideGuide per JoomlaLe ACL di Joomla 2.5. Un esempio pratico