In un precedente articolo ho discusso La terminologia ACL ed una panoramica generale di come funziona ACL, configurando il livello di accesso del front-end, e realizzando una migliore esperienza utente al login. Ora ci occupiamo di come migliorare l'esperienza utente aumentando l'usabilità utilizzando ACL nel back-end di Joomla.
Per molti siti che ho fatto, ho provato a configurare gli utenti dal front-end di Joomla. Sfortunatemente le possibilità di configurazione del front-end di Joomla sono limitate. Non è possibile, per esempio, creare facilmente nuovi articoli o collegarli al front-end del sito, senza attivare le funzionalità blog (ed alle volte non è quello che vogliamo usare). Quindi più spesso di quanto vorrei sono costretta a dare ai miei utenti accesso al back-end di Joomla anche per fare cose semplici.
Poi quando un utente arriva al back-end di Joomla, rapidamente viene distratto da funzionalità che non dovrebbe mai toccare. Anche se date al vostro utente il livello di accesso Manager, verrà comunque distratto da molte opzioni da prendere in considerazione.
Togliendo funzionalità del back-end di Joomla e lasciando solamente quelle a cui l'utente deve accedere, rendete il processo più semplice per il vostro utente. Quindi ora saprà il significato di ogni opzione nella struttura di menu e saprà come utilizzarla... sempre che gli forniate un adeguato addestramento e la documentazione.
L'ACL di Joomla è configurato di sistema come nega fino a consentire (deny until allow), Il gruppo pubblico degli utenti non ha alcun permesso tranne quello di vedere il front-end del sito. Ogni gruppo di utenti predefinito ha qualche permesso aggiunto, ed ogni permesso serve a consentire qualcosa.
Ricorda che la negazione non può essere sovrascritta. Se tu neghi ad un gruppo la possibilità di modificare i contenuti di una categoria, non riuscirai a dare il consenso per singoli articoli di quella categoria. Però se il gruppo ha ereditato il permesso "non configurato" dal gruppo pubblico, i suoi appartenenti non potranno modificare gli articoli, però si potrà consentire l'accesso a singoli articoli sovrascrivendo i permessi della categoria.
Possiamo aggiungere permessi a gruppi per effettuare alcune operazioni ad alcuni livelli. Proviamo a considerare la possibilità di aggiungere permessi di modifica in modo che gli utenti possano modificare articoli. Ci sono alcuni posti in cui possiamo aggiungere i permessi di modifica.
Immaginiamo di voler dare agli utenti un accesso veramente minimo al back-end di Joomla:
In genere l'approccio alla configurazione dovrebbe essere il seguente:
Ho già parlato di questo in dettaglio in altri articoli. Brevemente fate quando segue:
Se fate il login come utente a questo punto, vedrete una pagina simile a questa:
Questo non aiuta molto! Ora potete fare il login, ma dove sono il menu ed il pannello di controllo, cosa potete fare oltre che fare logout?
Una cosa che non avete ancora configurato è il livello di accesso al back-end del sito. Ricordate che il livello di accesso controlla chi vede cosa, compresi moduli, contenuti e via dicendo. I menu sono moduli anche nel back-end di Joomla. Essi sono moduli di amministratore ed a questi moduli viene assegnato il livello di Special. Quindi il vostro utente necessita di avere assegnato anche il livello Special nel suo Gruppo.
Siccome Special è richiesto per far funzionare ACL e back-end, io consiglio di non attivare il livello Special nel front-end di Joomla.
Fate così:
Ora dovreste vedere qualcosa come questa pagina:
Questo è quello che l'utente può fare a questo punto:
L'utente dovrebbe essere in grado di accedere alla gestione degli Articoli del back-end di Joomla. Il primo passo consiste nel fornirgli accesso alla voce di menu. Quando la voce è visibile ci possiamo concentrare nel fornirgli permessi più specifici.
Per far apparire la gestione Articoli come opzione del menu, andare in: Contenuti -> Articoli -> Opzioni e scegliere il tab "Permessi", quindi mettere Consentita su Accesso interfaccia amministrativa per il Gruppo Utenti. Cliccare "Salva & Chiudi" in alto a destra.
(Potreste essere curiosi sul significato dell'azione Configurazione. Questa consente di accedere al Dialog Box delle Opzioni. In genere questa opzione si lascia solo al super user.)
Ora andate nel browser dell'utente e fate il refresh della pagina, dovreste essere in grado di vedere Gestione Articoli e Gestione Categorie tra le icone del pannello di controllo e come voci del menu Contenuti.
Sfortunatemente per questo momento non è possibile separare i permessi di Articoli e Categorie. Questa è una delle maggiori debolezze del sistema ACL di Joomla.
Ora come utente potete vedere la lista completa degli articoli. Però non li potete modificare e nemmeno modificare il loro stato. Non c'è il pulsante per creare nuovi articoli in alto a destra. C'è solo il pulsante di Aiuto.
Il prossimo passo consiste nel dare agli utenti la possibilità di modificare gli articoli ed il loro stato. Volete dare agli utenti la possibilità di modificare tutti gli articoli so solo quelli di determinate categorie, oppure avete bisogno di decidere i permessi articolo per articolo?
La risposta è sempre Dipende! Quando configurate la struttura delle categorie per il sito io consiglio:
Se l'utente può modificare tutti gli articoli se deve configurare i permessi così:
Se l'utente può modificare solo gli articoli di una categoria o di un piccolo gruppo di categorie, configurate ogni categoria nel modo seguente:
Potete anche modificare articoli singoli come super user, andate al fondo della pagina ed impostate i permessi. Questo dovrebbe essere usato solo nei casi più rari. La configurazione dei permessi a livello di categorie è l'approccio migliore per facilitare la manutenzione.
Ora ho consentito ai miei utenti di creare, modificare, cambiare lo stato per gli articoli del sito. Il pannello di controllo per l'utente dovrebbe assomigliare a questo:
Come utente, se si modificano gli articoli, una delle cose di cui abbiamo certamente bisogno è la possibilità di aggiungere immagini agli articoli.
Nel modo in cui sono stati correntemente assegnati i permessi, l'utente ha la possibilità di andare negli articoli, sceglierne uno e cliccando sul titolo entrare nella pagina di modifica. Poi cliccando sul pulsante immagine in fondo alla pagina si apre la finestra di Gestione media che assomiglia a questa:
Notate che l'utente ha la possibilità di scegliere le immagini, ma non c'è modo per caricare nuove immagini nel sito. Questo perché la Gestione dei media è un componente separato dalla Gestione articoli e per questo motivo ha la propria gestione dei permessi separata. Ma c'è di più, la Gestione dei media non appare nella struttura del menu di back-end di Joomla quando si fa login come utente.
Per cambiare questo, basta passare al login di super user, andare su Contenuti -> Gestione Media -> Opzioni -> Permessi ed impostare Consentire su Accesso interfaccia amministrativa.
A questo punto, dovreste avere un'idea abbastanza precisa di quello che viene ora. Se l'utente necessita di collegare articoli al menu, deve avere accesso alla voce Menu del back-end di Joomla.
Come super user andate in Menu -> Gestione menu -> Opzioni -> Permessi, e per il Gruppo utenti impostate Consentire su Accesso interfaccia amministrativa, Crea, Modifica e Modifica stato.
Purtroppo agli utenti è consentito aggiungere voci di menu solo come figli di voci esistenti, e ad essi non è possibile limitare la possibilità di aggiungere solo alcuni tipi di voci di menu. Questa sarebbe un'aggiunta molto gradita alla ACL di Joomla.
Questo è il modo in cui appare ora il back-end degli utenti:
Ora voglio dare agli utenti accesso ai Link web, ma a nessun altro dei componenti di Joomla. Per fortuna questo è facile da fare, ed a questo punto probabilmente sareste in grado di indovinare da soli come fare.
Come super user, andamo su Componenti -> Link web -> Opzioni -> Permessi e per il Gruppo utenti impostate Consentire su Accesso interfaccia amministrativa, Crea, Modifica, Modifica stato e Modifica elementi propri.
Si può ripetere questo procedimento per ogni Componente principale di Joomla per cui desideriamo che l'utente abbia accesso.
Nota: alcuni componenti di terze parti non hanno integrato pienamente il sistema ACL di Joomla. Se ACL è importate per il vostro sito, tenete in considerazione questo parametro quando scegliete i componenti per il vostro sito.