Qualsiasi moderno sistema che gestisca il login degli utenti, consente sicuramente anche la possibilità di esportare l'elenco di tali utenti; Liferay non è da meno, pertanto vediamo come fare e, soprattutto, cosa possiamo fare.
Innanzitutto è necessario accedere alla pagina per la gestione degli utenti: Pannello di controllo → Utenti e Organizzazioni → Tutti gli Utenti.
Una volta caricata la pagina, è necessario cliccare sul pulsante Esporta Utenti per avviare il processo e scaricare così un file CSV contenente l'intero elenco di utenti.
Mmm, abbiamo finito? A dire il vero no, perchè se apriamo il file CSV appena creato ci rendiamo conto che, per ogni utente, sono stati esportati solamente i campi fullName
ed emailAddress
; insomma non è proprio il massimo per un'esportazione massiva.
Bene, allora facciamo un hook o un ext e modifichiamo il comportamento standard! Assolutamente no, anzi, per fortuna no! Infatti Liferay, in questo caso, ci consente di decidere cosa esportare semplicemente impostando una property di portale:
users.export.csv.fields=fullName,emailAddress
Guarda caso l'impostazione di default prevede solamente i campi fullName
ed emailAddress
...
E' quindi sufficiente definire i propri valori all'interno del solito file portal-ext.properties
e riavviare il portale; un esempio?
users.export.csv.fields=firstName,lastName,fullName,emailAddress,jobTitle,lastLoginIP
Ma la cosa bella è che non dobbiamo limitarci solamente ad indicare i nomi delle colonne del database della tabella User
; possiamo infatti specificare il nome di qualsiasi campo per il quale esista un relativo metodo getter (i lettori più attenti si saranno già accorti della cosa visto che il campo fullName
è calcolato a runtime).
Abbiamo finito adesso? Ancora no, perchè oltre ai campi "normali" possiamo esportare anche i custom field associati all'entità User
! E' infatti sufficiente utilizzare il prefisso expando:
seguito dal nome del custom field ed il gioco è fatto! Ad esempio:
users.export.csv.fields=firstName,lastName,fullName,emailAddress,expando:fiscalCode,expando:vatNumber
E adesso esportate a manetta!