Creazione di un modulo per la gestione delle password

25
CREAZIONE MODULO PER LA GESTIONE DELLA SCADENZA PASSWORD UTENTE

description

Nicola Pignatelli @ Drupal Days 2014

Transcript of Creazione di un modulo per la gestione delle password

Page 1: Creazione di un modulo per la gestione delle password

CREAZIONE MODULO PER LA GESTIONE DELLA SCADENZA PASSWORD UTENTE

Page 2: Creazione di un modulo per la gestione delle password

#DrupalD

aysITOBIETTIVO DELLO SPEECH

Obiettivo di questa esposizione è la creazione di un modulo che periodicamente invalidi la password degli utenti.

Questo permette di migliorare la sicurezza del sito/portale.

La scelta potrà essere a livello globale oppure partendo dal ruolo per arrivare all'utente stesso.

Page 3: Creazione di un modulo per la gestione delle password

#DrupalD

aysITOBIETTIVO DELLO SPEECH

• Creazione dei file necessari per il modulo

• Creazione tabelle nel database

• Utilizzo hook di sistema

• Come inviare email dal modulo

• Invio automatico di email di avviso

• Traduzione multilingua del modulo

Page 4: Creazione di un modulo per la gestione delle password

#DrupalD

aysITFILE UTILIZZATI NEL MODULO

• expire_user_password.info (contiene i dati informativi del modulo)

• expire_user_password.install (utilizzato per la creazione delle tabelle e variabili)

• expire_user_password.module (contiene l'implementazione del modulo)

• expire_user_password.it.po (contiene le traduzioni delle stringhe)

Page 5: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.info

name = Expire User Passworddescription = Modules to manage scheduled user password package = Usercore = 7.xconfigure = admin/expire_user_password/configure

dependencies[] = localedependencies[] = date_popup

Page 6: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.install

Hook/funzioni presenti nel file:

expire_user_password_schema()(contiene la tabella che mappa utente/data di

scadenza password)

expire_user_password_install() (setta variabili di sistema)

expire_user_password_uninstall() (cancella le variabili di sistema create in precedenza)

Page 7: Creazione di un modulo per la gestione delle password

#DrupalD

aysITSCREENSHOT ELENCO MODULI SUL SISTEMA/1

Page 8: Creazione di un modulo per la gestione delle password

#DrupalD

aysITSCREENSHOT ELENCO MODULI SUL SISTEMA/2

Page 9: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.module

COSTANTI DEL MODULO

EXPIRE_USER_PASSWORD_CONFIGURE:utilizzata per il prefisso comune a tutte le voci di menu. Il valore è: admin/expire_user_password

EXPIRE_USER_PASSWORD_RID_ADMIN_ROLE:utilizzata per il definire in un punto il valore del role id corrispondente agli amministratori. Nel nostro caso il valore è: 3.

Page 10: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.module

HOOK/FUNZIONI DEL MODULO

expire_user_password_help($path, $arg):hook_help utilizzato per generare la pagina contenente la spiegazione e il riassunto dei link del modulo.

expire_user_password_menu():hook_menu che permette di creare i link delle pagine di amministrazione.

expire_user_password_permission():hook_permission contenente il permesso per permettere agli utenti di configurare le pagine di amministrazione.

Page 11: Creazione di un modulo per la gestione delle password

#DrupalD

aysITSCREENSHOT PERMESSI DEL MODULO

Page 12: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.module

expire_user_password_configure($form, &$form_state):funzione che crea la pagina di admin per abilitare o disabilitare scadenza password a livello di sistema.

_expire_user_password_configure_submit($form, &$form_state):funzione che recupera i valori del form creato in expire_user_password_configure ed in base alle condizioni del form salva i dati nelle variabili di sistema e genera le scadenze password per tutti gli utenti.

Page 13: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.module

expire_user_password_form_alter(&$form, &$form_state, $form_id):hook_form_alter per aggiungere al form il campo conterrà la data di scadenza password utente. Il campo sarà visibile agli utenti con il permesso associato ad uno dei loro ruoli.

_expire_user_password_ttl_user_validate($form, &$form_state):funzione per verificare che la data inserita sia valida.

Page 14: Creazione di un modulo per la gestione delle password

#DrupalD

aysITSCREENSHOT FORM EDIT UTENTE

Page 15: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.module

_expire_user_password_ttl_user_save($form, &$form_state):funzione che salva/cancella la data di scadenza password corrispondente all'utente nella tabella expire_user_password_users.

_expire_user_password_get_ttl_user($uid):funzione che recupera la data scadenza password in base all'uid utente passato come parametro.

_expire_user_password_get_ttl_role($rid=null):funzione che recupera la data scadenza password in base all'rid ruolo passato come parametro.

Page 16: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.module

expire_user_password_user_delete($account):hook_user_delete per cancellare la data scadenza password utente da expire_user_password_users.

expire_user_password_reset_ttl($form, &$form_state):funzione che crea la pagina di admin per inserire le date di scadenza password in base al ruolo.

_expire_user_password_reset_ttl_submit($form, &$form_state):funzione che recupera i valori del form creato in expire_user_password_reset_ttl e permette di aggiornate le scadenze delle password utente.

Page 17: Creazione di un modulo per la gestione delle password

#DrupalD

aysITSCREENSHOT ABILITAZIONE EXPIRE PASSWORD

Page 18: Creazione di un modulo per la gestione delle password

#DrupalD

aysITSCREENSHOT TTL PER SINGOLO RUOLO

Page 19: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.module

expire_user_password_init():hook_init per centralizzare il controllo della scadenza password quando si visita una pagina.

expire_user_password_cron():hook_cron per verificare scadenze di password ed inviare un avviso agli utenti

expire_user_password_user_load($users):hook_user_load per aggiungere all'oggetto $user la proprietà corrispondente al campo scadenza password

Page 20: Creazione di un modulo per la gestione delle password

#DrupalD

aysITCONTENUTO FILE expire_user_password.module

_expire_user_password_list_permissions($account):Funzione che recupera in un array “piatto” tutti i permessi associati all'utente passato come parametro.

expire_user_password_mail($key, &$message, $params):Funzione per inviare la mail di avviso di scadenza password all'utente.

Page 21: Creazione di un modulo per la gestione delle password

#DrupalD

aysITTRADUZIONE MULTILINGUA DEL MODULO/1

Per tradurre le stringhe nel modulo eseguire i seguenti passaggi preliminari:

Utilizzare la funzione t() su ogni stringa di cui si vuole effettuare la traduzione.

Scaricare il modulo “Translation template extractor” dal seguente url: https://drupal.org/project/potx

Abilitare il modulo “Translation template extractor”

Aggiungere la lingua italiana tramite il form presente all'url http://[dominio]/admin/config/regional/language/

Page 22: Creazione di un modulo per la gestione delle password

#DrupalD

aysITTRADUZIONE MULTILINGUA DEL MODULO/2

Per estrarre le stringhe da tradurre andare alla pagina http://[dominio]/admin/config/regional/translate/extracte selezionare il checkbox inerente il modulo expire_user_password.

Una volta generato il file .pot utilizzare un software, per esempio poedit, per inserire le traduzioni delle stringhe inglesi nella lingua preferita.

Salvare il file con un nome parlante, per esempio expire_user_password.it.po.

Page 23: Creazione di un modulo per la gestione delle password

#DrupalD

aysITTRADUZIONE MULTILINGUA DEL MODULO/3

Importare le stringhe di traduzione caricando il file al seguente url:

http://[dominio]/admin/config/regional/translate/import

selezionando la lingua delle stringhe tradotte.

Ora selezionando la lingua italiana le stringhe precedentemente in inglese saranno visibili nella lingua dello Stivale.

Page 24: Creazione di un modulo per la gestione delle password

NICOLA PIGNATELLI

Web: http://www.pignatelli.com

Email: [email protected]

Facebook: npignatelli

Twitter: pignatellicom

Skype: nicola.pignatelli

Linkedin: /in/nicolapignatelli

Page 25: Creazione di un modulo per la gestione delle password

SPONSOR

MEDIA PARTNER