Uno dei problemi che si presentano con maggior frequenza nell'amministrazione del sito web di una Pubblica Amministrazione, e non risolvibile in maniera efficiente con i soli strumenti messi a disposizione dal core di Joomla!, è la gestione massiva di utenze temporanee: uno scenario tipico è la creazione di account utenti per il personale a tempo determinato, per i quali si rende necessaria la disattivazione alla scadenza del contratto; nel caso degli istituti scolastici, ad esempio, questa complicazione gestionale è particolarmente evidente all'inizio e al termine dell'anno scolastico. Tuttavia, la gestione "a scadenza" degli account potrebbe interessare anche altre tipologie di siti. Al momento, prendendo in considerazione esclusivamente le funzionalità del core di Joomla, una soluzione possibile, senza ricorrere all'installazione di componenti di terze parti, consiste nella creazione manuale degli utenti e successiva disabilitazione, a scadenza, anch'essa manuale. Nel caso i numeri lo rendano necessario, per semplificare il processo è possibile creare un gruppo utenti ad hoc, dove collezionare le utenze per data di scadenza, specificando eventualmente nel nome del gruppo la data di disattivazione: in questo modo si può effettuare la selezione degli utenti da disabilitare mediante un semplice filtro basato sul gruppo di appartenenza. Ma nel caso di un numero considerevole di utenze, o nel caso di scadenze scaglionate che non permettano la semplice gestione basata sui gruppi, un'operazione laboriosa ma fattibile si traduce in un'attività proibitiva.
Per venire incontro alle esigenze di chi si trova a gestire siti con queste necessità, ci vengono in aiuto il componente J2XML e il plugin J2XML - Users Importer utilizzati insieme al plugin User - Password Policy.
Il primo problema da affrontare è la disabilitazione automatica a scadenza degli account. Di questo si occupa il plugin User - Password Policy; il plugin, una volta abilitato, aggiunge una nuova tab al profilo utente con il campo Scadenza account. Per ciascun utente, l'amministratore, in qualsiasi momento, potrà impostare una data di scadenza dopo la quale il sistema blocca l'account.
Il secondo problema è il caricamento massivo degli utenti. Per questa attività ci affideremo a J2XML, un componente che permette il caricamento di dati in Joomla! tramite un file xml opportunamente compilato; poiché la compilazione del file nativo di J2XML non è semplice, lo utilizzeremo in associazione con il plugin J2XML - Users Importer che si occuperà di convertire un file con l'elenco delle utenze creato in formato CSV, sicuramente di più facile compilazione da parte del personale addetto, nel formato nativo di J2XML.
Il file CSV, comma separated value, è un semplice file di testo utilizzato per manipolare dati in forma tabellare, come nei fogli di calcolo; ogni riga corrisponde a un record i cui campi sono separati da uno specifico separatore e, in genere, la prima riga è descrittiva ed indica i nomi dei campi.
Nel nostro caso i campi utilizzati sono:
- name
- Cognome e nome dell'utente;
- username
- nome utente per accedere al sito web; si suggerisce di usare il codice fiscale per semplificare la successiva integrazione con SPiD
- email dell'utente, si suggerisce l'uso della email istituzionale
- groups
- l'elenco dei gruppi a cui apparterrà l'utente nel seguente formato: [2,3]
- profile.passwordpolicy.expiryDate
- data in formato ISO 8601 YYYY-MM-DD hh:mm:ss
- requireReset
- benché la password sia generata in automatico dal plugin J2XML - Users Importer e non sia a conoscenza di nessuno, se non dell'utente, è sempre buona norma richiedrne il cambio al primo accesso. Per cui si userà il valore 1 (uno) per forzare il cambio password dopo il primo accesso.
L'automazione del processo si conclude con l'invio della notifica automatica all'utente da parte di Joomla delle credenziali per il login: ricordiamo che, per consentire l’invio dell’email, occorre abilitare l'opzione Notifica via mail all'utente del plugin User - Joomla!.
Le possibilità di J2XML, J2XML - Users Importer e User - Password Policy non si limitano a questo. Pertanto si consiglia di dare una lettura alla documentazione ufficiale: