La registrazione in Joomla
I visitatori di un sito hanno la possibilità di visitarlo in maniera attiva o passiva; migliore sarà la possibilità di interazione che il sito offre e migliore sarà la loro esperienza di navigazione e quindi migliore sarà la valutazione.
Joomla! come ogni CMS che si rispetti opera una differenziazione fra normali visitatori ed utenti registrati, a loro volta con diversi permessi.
I visitatori di solito arrivano sul sito guidati dai risultati del motore di ricerca o attraverso link provenienti da siti di natura social e potrebbero quindi (sul nostro sito) diventare anche utenti registrati a loro volta.
Fra l'altro gli utenti che si registrano al nostro sito avranno sicuramente delle necessità e sanno i risultati che vogliono ottenere e scandagliano il nostro sito con determinate aspettative per le loro ricerche e i loro bisogni.
Ma attenzione consentire la registrazione implica la comprensione che il tuo sito va gestito poichè è attraverso questa funzione che possono crearsi gravi falle di sicurezza, che di norma NON sono ben volute dagli hosting provider.
Ogni accesso utente quindi sarà valutato da un sistema facente capo alla funzione, "Gruppi utente" in abbinata ai livelli di accesso.
Dopo la registrazione sul nostro sito quindi, l'utente automaticamente entrerà a far parte di un certo gruppo di utenti con i suoi permessi;
il gruppo avrà a sua volta dei permessi predefiniti e avrà un suo livello di accesso; chiaramente quindi ad ogni livello di accesso potranno far capo anche un certo numero di gruppi utente. Aggiungiamo anche che, come sappiamo, ad un gruppo utenti appartengono chiaramente un certo numero di utenti/visitatori, ai quali si potranno attribuire determinati permessi. Cominciamo quindi a dare un'occhiata alle varie fasi del processo di registrazione.
REGISTRAZIONE E LOGIN
Quando nel nostro sito Joomla! compiamo una prima registrazione utente?
Proprio al termine dell'installazione di Joomla, nell'ultimo passo quando ci viene chiesto di definire un nome utente, un indirizzo e-mail ed una password, questa è la prima registrazione al nostro sito, quando viene valorizzata per la prima volta la tabella utenti del database del nostro Joomla!.
Questo tipo di registrazione (in fase di installazione) assegna automaticamente i diritti di Super Administrator all'utente, il quale può fare tutto sul sito. Questo perchè ogni sito realizzato con Joomla! deve possedere almeno un account configurato per l'accesso alla parte amministrativa ed è a questo utente (Super Administrator) che è concesso l'accesso alla gestione utenti, da cui può anche andare a settare la "Configurazione utenti" e decidere quindi i parametri da gestire per la registrazione, i criteri e le opzioni per la mass mail ed anche i permessi da accordare a questo o a quell'altro tipo di gruppo di utenti.

Sul nostro sito Joomla! potremo quindi creare quanti utenti vogliamo.
Se il tipo di sito che abbiamo realizzato lo permette (tipo un blog, un e-commerce o altro) possiamo chiaramente decidere se permettere la registrazione ai visitatori (è chiaro che se è solo un sito vetrina senza vendita o news o rss feed o aggiornamenti, è inutile mettere la registrazione perche sennò di quali servizi o meglio interazioni con il sito l'utente dovrebbe disporre?).
Torniamo al discorso dei permessi, sappiamo che, a seconda dei permessi dati ad un utente, questo potrebbe anche creare i suoi articoli, news, contenuti insomma e/o avere accesso e vedere altri contenuti che sono stati realizzati in particolare per loro e ai quali magari solo loro possono avere accesso.
Opzioni utente
Allora, torniamo alla gestione utenti; andiamo da menu Utenti -> Gestione utenti e clicchiamo sul pulsante in alto a destra "Opzioni"; ci apparirà quindi una maschera in cui potremo andare a settare la configurazione, nel dettaglio:
Login
I visitatori, si sa, hanno (a discrezione del webmaster e del committente nonchè in base alle funzionalità e ai servizi offerti dal sito stesso) la possibilità quindi di registrarsi al sito, per far questo chiaramente ci vuole un'interfaccia, in gergo tecnico un "form" che provveda a raccogliere i dati dell'utente per poi inviarli al database nella tabella utenti e definire quindi la registrazione di un utente; Joomla! offre questa possibilità attraverso un modulo che può essere posizionato nel template nella posizione che più ci aggrada.

Questo modulo a sua volta può essere personalizzato attraverso le scelte che troviamo nelle opzioni del modulo stesso, come per esempio la possibilità di inserire del testo personalizzato, attivare il protocollo di cifratura SSL (se il nostro servizio di hosting ce lo permette e noi abbiamo attivato il servizio), non solo, anche la possibilità di decidere la pagina di reindirizzamento sia dopo il login che dopo il logout.

Il vantaggio che possiamo trarre dall'usare questo tipo di form, al di là del fatto che di per sè è integrato nel modulo di login, è il fatto che l'utente non ha la necessità di cliccare su di un link per arrivare a questo form, ma ce l'ha già pronto in vista sulla pagina.
Viceversa, se invece si vuole avere la possibilità di avere questo form non visibile su di un modulo ma su di un'altra voce, si può optare benissimo di scegliere di linkare da un menu direttamente il form di registrazione, andando nelle opzioni del nostro menu e andando a scegliere, fra la lista di voci di link (pulsante "Nuovo" in alto a destra) quella appunto relativa al form di login, non solo, come si vede dalla figura, la si può personalizzare scegliendo altri tipi di link (profilo utente, form di registrazione, reset della password, etc.).

Campi aggiuntivi
In passato per avere dei campi addizionali nel form di registrazione dovevamo ricorrere ad estensioni di terze parti che andavano ad aumentare le potenzialità del nostro form aggiungendo altri campi, oppure, nel peggiore dei casi, disabilitare il modulo nativo di Joomla! ed usare un'estensione di terze parti che ci installasse un altro tipo di modulo configurabile con più opzioni.
Ora Joomla! ci viene consegnato già con queste funzioni implementate di base, grazie al plugin chiamato User Profile.
Andiamo da menu Estensioni->Gestione Plugin e scegliamo il plugin "User Profile"; notiamo subito che esso di default viene disabilitato, bene, andiamolo ad abilitare per avere accesso a queste funzioni aggiuntive ed andiamolo a configurare.
Notiamo subito come, una volta aver cliccato sul plugin per accedere alla sua configurazione, sulla colonna di destra ci sia una marea di opzioni, voci e novità per andare a personalizzare il nostro form di registrazione o accesso utente; vediamo anche che fra le varie voci c'è la possibilità di inserire i famosi "Termini di utilizzo" o comunque abbiamo la possibilità di creare una voce nella quale specificare alcune cose di cui l'utente vogliamo sia consapevole, unica pecca (almeno per ora) è che il testo lo dobbiamo inserire seguendo le linee guida di questo topic:
http://forum.joomla.it/index.php?topic=146120.0
in futuro credo che ci sarà la possibilità di avere una voce direttamente nelle opzioni dello User Profile in cui andare a scrivere il testo.

Suggerimento: per una migliore gestione delle funzionalità di gestione utenti, quali per esempio opzioni estese del form di registrazione, campi e profili addizionali, opzioni di approvazione registrazione, etc., si rende necessario l'uso di un'estensione di terze parti con funzionalità avanzate, tipo ad esempio Community Builder.
GRUPPI UTENTE
L'idea di un sistema ACL rivolto ai gruppi utente è data dalla necessità di assegnare "set" di permessi direttamente non solo all'utente singolo, ma appunto a tutto un gruppo utenti.
Attenzione però a non confondere questa funzionalità con quelle offerte da altre estensioni (es. GroupJive) che altro non è che un "social networking component" che permette l'assegnazione degli utenti a dei gruppi organizzati per interesse o altro.
Torniamo a noi, per riassumere quindi abbiamo visto che ora le autorizzazioni oltre a poter essere assegnate a singolo utente, possono essere assegnate a gruppi di utenti direttamente ed il singolo utente può essere quindi assegnato ad uno o più gruppi. Immaginate infatti di avere 10.000 utenti in quattro gruppi diversi, in questo modo diventa semplice per l'amministratore del sito andare a modificare le autorizzazioni per ciascuno dei gruppi; senza questa funzionalità capiamo bene che si dovrebbe andare utente per utente a settare i permessi, in questa maniera invece, in un colpo solo si vanno ad assegnare i permessi a diversi utenti alla volta.
In Joomla! si possono andare a creare quanti gruppi utente si vogliono e se andiamo da menu Utenti->Gestione Utenti->sez. Gruppi utenti possiamo avere un'anteprima di quanti e quali gruppi utente abbiamo a disposizione in maniera nativa.

Permessi di default per i gruppi utente lato pubblico (frontend):
Permessi di default per i gruppi utente lato amministrativo (backend):
- Gruppo Manager: un utente appartenente al gruppo Manager può creare contenuti e consultare informazioni riguardo l'installazione e il sistema.
Non è autorizzato a:
gestire gli utenti; installare moduli e componenti; passare un utente a Super Administrator o cambiare di livello un Super Administrator; non può accedere lato backend alle funzionalità della sezione Sito->Configurazione Globale; mandare mass mail agli utenti; cambiare e/o installare template o file di linguaggio.
- Gruppo Administrator: un utente appartenente al gruppo Administrator non è autorizzato a:
passare un utente a Super Administrator o cambiare di livello un Super Administrator; non può accedere lato backend alle funzionalità della sezione Sito->Configurazione Globale; mandare mass mail agli utenti; cambiare e/o installare template o file di linguaggio.
- Gruppo Super Administrator o Super User: questo tipo di utente è abilitato all'esecuzione ed alla gestione di tutte le funzionalità di Joomla! presenti lato amministrazione e lato frontend. Solo un Super Administrator può aggiungere a sua volta altri Super Administrator.
LIVELLI DI ACCESSO
Come anticipato sopra, i gruppi utente possono essere assegnati a diversi livelli di accesso. In questo modo avremo un utente collegato ad un gruppo e dei gruppi collegati a loro volta a livelli di accesso.


(Figura - Gruppi assegnati a un livello di accesso)
Perchè ci sono i livelli di accesso?
Come abbiamo visto, i livelli di accesso non sono altro che un insieme di gruppi. Grazie alla combinazione dei permessi di gruppo e dei livelli di accesso, diventa semplice gestire ogni tipo di situazione a livello di gestione utenti che ci si presenterà.
In un articolo, per esempio, è possibile limitare l'accessibilità ad un livello di accesso.

(nella figura sopra - livelli di accesso in un articolo)
Tale funzionalità è necessaria per limitare l'accesso ai contenuti e alle funzioni in sistemi di grandi dimensioni o per gestire un sistema e-commerce e abbonamenti ai servizi, il tutto chiaramente in siti gestiti da un sistema basato su Joomla!.
Ed aggiungiamo anche che il sistema ACL presente in Joomla! non è disponibile solo per l'uso in abbinata alle funzionalità del cms stesso ma allarga le sue funzionalità anche nei confronti di estensioni di terze parti.
Per esempio basti pensare ad estensioni come Community Builder e ad altre dedicate alla gestione anche dei contenuti, esse possono in buona sostanza trarre vantaggio da queste nuove funzionalità ACL che il core di Joomla! ci mette a disposizione.
Joomla! come ogni CMS che si rispetti opera una differenziazione fra normali visitatori ed utenti registrati, a loro volta con diversi permessi.
I visitatori di solito arrivano sul sito guidati dai risultati del motore di ricerca o attraverso link provenienti da siti di natura social e potrebbero quindi (sul nostro sito) diventare anche utenti registrati a loro volta.
Fra l'altro gli utenti che si registrano al nostro sito avranno sicuramente delle necessità e sanno i risultati che vogliono ottenere e scandagliano il nostro sito con determinate aspettative per le loro ricerche e i loro bisogni.
Ma attenzione consentire la registrazione implica la comprensione che il tuo sito va gestito poichè è attraverso questa funzione che possono crearsi gravi falle di sicurezza, che di norma NON sono ben volute dagli hosting provider.
Ogni accesso utente quindi sarà valutato da un sistema facente capo alla funzione, "Gruppi utente" in abbinata ai livelli di accesso.
Dopo la registrazione sul nostro sito quindi, l'utente automaticamente entrerà a far parte di un certo gruppo di utenti con i suoi permessi;
il gruppo avrà a sua volta dei permessi predefiniti e avrà un suo livello di accesso; chiaramente quindi ad ogni livello di accesso potranno far capo anche un certo numero di gruppi utente. Aggiungiamo anche che, come sappiamo, ad un gruppo utenti appartengono chiaramente un certo numero di utenti/visitatori, ai quali si potranno attribuire determinati permessi. Cominciamo quindi a dare un'occhiata alle varie fasi del processo di registrazione.
REGISTRAZIONE E LOGIN
Quando nel nostro sito Joomla! compiamo una prima registrazione utente?
Proprio al termine dell'installazione di Joomla, nell'ultimo passo quando ci viene chiesto di definire un nome utente, un indirizzo e-mail ed una password, questa è la prima registrazione al nostro sito, quando viene valorizzata per la prima volta la tabella utenti del database del nostro Joomla!.
Questo tipo di registrazione (in fase di installazione) assegna automaticamente i diritti di Super Administrator all'utente, il quale può fare tutto sul sito. Questo perchè ogni sito realizzato con Joomla! deve possedere almeno un account configurato per l'accesso alla parte amministrativa ed è a questo utente (Super Administrator) che è concesso l'accesso alla gestione utenti, da cui può anche andare a settare la "Configurazione utenti" e decidere quindi i parametri da gestire per la registrazione, i criteri e le opzioni per la mass mail ed anche i permessi da accordare a questo o a quell'altro tipo di gruppo di utenti.

Sul nostro sito Joomla! potremo quindi creare quanti utenti vogliamo.
Se il tipo di sito che abbiamo realizzato lo permette (tipo un blog, un e-commerce o altro) possiamo chiaramente decidere se permettere la registrazione ai visitatori (è chiaro che se è solo un sito vetrina senza vendita o news o rss feed o aggiornamenti, è inutile mettere la registrazione perche sennò di quali servizi o meglio interazioni con il sito l'utente dovrebbe disporre?).
Torniamo al discorso dei permessi, sappiamo che, a seconda dei permessi dati ad un utente, questo potrebbe anche creare i suoi articoli, news, contenuti insomma e/o avere accesso e vedere altri contenuti che sono stati realizzati in particolare per loro e ai quali magari solo loro possono avere accesso.
Opzioni utente
Allora, torniamo alla gestione utenti; andiamo da menu Utenti -> Gestione utenti e clicchiamo sul pulsante in alto a destra "Opzioni"; ci apparirà quindi una maschera in cui potremo andare a settare la configurazione, nel dettaglio:
- componente - da qui si può decidere se dare o meno la possibilità ai visitatori di registrarsi e di decidere anche a quale gruppo di utenti (una volta registrato) assegnare appunto l'utente stesso, non solo, abbiamo anche la possibilità di decidere il livello utente che può avere un semplice visitatore ed anche la possibilità di scegliere il metodo di attivazione della registrazione (il classico link via mail);
- mass mail - come dice il titolo sezione, da qui è possibile configurare alcuni aspetti della funzionalità mass mail;
- permessi - in questa sezione potremo andare a configurare i vari permessi da assegnare ai vari gruppi utente.
Login
I visitatori, si sa, hanno (a discrezione del webmaster e del committente nonchè in base alle funzionalità e ai servizi offerti dal sito stesso) la possibilità quindi di registrarsi al sito, per far questo chiaramente ci vuole un'interfaccia, in gergo tecnico un "form" che provveda a raccogliere i dati dell'utente per poi inviarli al database nella tabella utenti e definire quindi la registrazione di un utente; Joomla! offre questa possibilità attraverso un modulo che può essere posizionato nel template nella posizione che più ci aggrada.

Questo modulo a sua volta può essere personalizzato attraverso le scelte che troviamo nelle opzioni del modulo stesso, come per esempio la possibilità di inserire del testo personalizzato, attivare il protocollo di cifratura SSL (se il nostro servizio di hosting ce lo permette e noi abbiamo attivato il servizio), non solo, anche la possibilità di decidere la pagina di reindirizzamento sia dopo il login che dopo il logout.

Il vantaggio che possiamo trarre dall'usare questo tipo di form, al di là del fatto che di per sè è integrato nel modulo di login, è il fatto che l'utente non ha la necessità di cliccare su di un link per arrivare a questo form, ma ce l'ha già pronto in vista sulla pagina.
Viceversa, se invece si vuole avere la possibilità di avere questo form non visibile su di un modulo ma su di un'altra voce, si può optare benissimo di scegliere di linkare da un menu direttamente il form di registrazione, andando nelle opzioni del nostro menu e andando a scegliere, fra la lista di voci di link (pulsante "Nuovo" in alto a destra) quella appunto relativa al form di login, non solo, come si vede dalla figura, la si può personalizzare scegliendo altri tipi di link (profilo utente, form di registrazione, reset della password, etc.).

Campi aggiuntivi
In passato per avere dei campi addizionali nel form di registrazione dovevamo ricorrere ad estensioni di terze parti che andavano ad aumentare le potenzialità del nostro form aggiungendo altri campi, oppure, nel peggiore dei casi, disabilitare il modulo nativo di Joomla! ed usare un'estensione di terze parti che ci installasse un altro tipo di modulo configurabile con più opzioni.
Ora Joomla! ci viene consegnato già con queste funzioni implementate di base, grazie al plugin chiamato User Profile.
Andiamo da menu Estensioni->Gestione Plugin e scegliamo il plugin "User Profile"; notiamo subito che esso di default viene disabilitato, bene, andiamolo ad abilitare per avere accesso a queste funzioni aggiuntive ed andiamolo a configurare.
Notiamo subito come, una volta aver cliccato sul plugin per accedere alla sua configurazione, sulla colonna di destra ci sia una marea di opzioni, voci e novità per andare a personalizzare il nostro form di registrazione o accesso utente; vediamo anche che fra le varie voci c'è la possibilità di inserire i famosi "Termini di utilizzo" o comunque abbiamo la possibilità di creare una voce nella quale specificare alcune cose di cui l'utente vogliamo sia consapevole, unica pecca (almeno per ora) è che il testo lo dobbiamo inserire seguendo le linee guida di questo topic:
http://forum.joomla.it/index.php?topic=146120.0
in futuro credo che ci sarà la possibilità di avere una voce direttamente nelle opzioni dello User Profile in cui andare a scrivere il testo.

Suggerimento: per una migliore gestione delle funzionalità di gestione utenti, quali per esempio opzioni estese del form di registrazione, campi e profili addizionali, opzioni di approvazione registrazione, etc., si rende necessario l'uso di un'estensione di terze parti con funzionalità avanzate, tipo ad esempio Community Builder.
GRUPPI UTENTE
L'idea di un sistema ACL rivolto ai gruppi utente è data dalla necessità di assegnare "set" di permessi direttamente non solo all'utente singolo, ma appunto a tutto un gruppo utenti.
Attenzione però a non confondere questa funzionalità con quelle offerte da altre estensioni (es. GroupJive) che altro non è che un "social networking component" che permette l'assegnazione degli utenti a dei gruppi organizzati per interesse o altro.
Torniamo a noi, per riassumere quindi abbiamo visto che ora le autorizzazioni oltre a poter essere assegnate a singolo utente, possono essere assegnate a gruppi di utenti direttamente ed il singolo utente può essere quindi assegnato ad uno o più gruppi. Immaginate infatti di avere 10.000 utenti in quattro gruppi diversi, in questo modo diventa semplice per l'amministratore del sito andare a modificare le autorizzazioni per ciascuno dei gruppi; senza questa funzionalità capiamo bene che si dovrebbe andare utente per utente a settare i permessi, in questa maniera invece, in un colpo solo si vanno ad assegnare i permessi a diversi utenti alla volta.
In Joomla! si possono andare a creare quanti gruppi utente si vogliono e se andiamo da menu Utenti->Gestione Utenti->sez. Gruppi utenti possiamo avere un'anteprima di quanti e quali gruppi utente abbiamo a disposizione in maniera nativa.

Permessi di default per i gruppi utente lato pubblico (frontend):
- Gruppo Registered: un utente registrato può loggarsi, editare il suo profilo utente e avere accesso a parti del sito a cui non hanno accesso gli utenti non registrati (visitatori semplici);
- Gruppo Author: gli autori possono fare tutto ciò che può fare un utente registrato, può inoltre anche scrivere articoli e modificarli in seguito; generalmente per questo c'è un link attivato nel suo menu utente per accedere a queste funzioni;
- Gruppo Editor: gli appartenenti al gruppo editor possono fare tutto ciò che può fare un utente autore; un utente editor può anche scrivere ed editare tutti gli articoli scritti da altri utenti editor o autori e che appaiono nel frontend;
- Gruppo Publisher: gli appartenenti a questo gruppo possono fare tutto ciò che fanno gli utenti editor; un utente appartenente al gruppo publisher può scrivere articoli e modificare ogni tipo di informazione che appare lato frontend; un utente di questo tipo può inoltre anche decidere se un articolo debba essere pubblicato o no.
Permessi di default per i gruppi utente lato amministrativo (backend):
- Gruppo Manager: un utente appartenente al gruppo Manager può creare contenuti e consultare informazioni riguardo l'installazione e il sistema.
Non è autorizzato a:
gestire gli utenti; installare moduli e componenti; passare un utente a Super Administrator o cambiare di livello un Super Administrator; non può accedere lato backend alle funzionalità della sezione Sito->Configurazione Globale; mandare mass mail agli utenti; cambiare e/o installare template o file di linguaggio.
- Gruppo Administrator: un utente appartenente al gruppo Administrator non è autorizzato a:
passare un utente a Super Administrator o cambiare di livello un Super Administrator; non può accedere lato backend alle funzionalità della sezione Sito->Configurazione Globale; mandare mass mail agli utenti; cambiare e/o installare template o file di linguaggio.
- Gruppo Super Administrator o Super User: questo tipo di utente è abilitato all'esecuzione ed alla gestione di tutte le funzionalità di Joomla! presenti lato amministrazione e lato frontend. Solo un Super Administrator può aggiungere a sua volta altri Super Administrator.
LIVELLI DI ACCESSO
Come anticipato sopra, i gruppi utente possono essere assegnati a diversi livelli di accesso. In questo modo avremo un utente collegato ad un gruppo e dei gruppi collegati a loro volta a livelli di accesso.


(Figura - Gruppi assegnati a un livello di accesso)
Perchè ci sono i livelli di accesso?
Come abbiamo visto, i livelli di accesso non sono altro che un insieme di gruppi. Grazie alla combinazione dei permessi di gruppo e dei livelli di accesso, diventa semplice gestire ogni tipo di situazione a livello di gestione utenti che ci si presenterà.
In un articolo, per esempio, è possibile limitare l'accessibilità ad un livello di accesso.

(nella figura sopra - livelli di accesso in un articolo)
Tale funzionalità è necessaria per limitare l'accesso ai contenuti e alle funzioni in sistemi di grandi dimensioni o per gestire un sistema e-commerce e abbonamenti ai servizi, il tutto chiaramente in siti gestiti da un sistema basato su Joomla!.
Ed aggiungiamo anche che il sistema ACL presente in Joomla! non è disponibile solo per l'uso in abbinata alle funzionalità del cms stesso ma allarga le sue funzionalità anche nei confronti di estensioni di terze parti.
Per esempio basti pensare ad estensioni come Community Builder e ad altre dedicate alla gestione anche dei contenuti, esse possono in buona sostanza trarre vantaggio da queste nuove funzionalità ACL che il core di Joomla! ci mette a disposizione.
- —