creazione di un modulo per la gestione delle password

Post on 08-May-2015

523 Views

Category:

Internet

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Nicola Pignatelli @ Drupal Days 2014

TRANSCRIPT

CREAZIONE MODULO PER LA GESTIONE DELLA SCADENZA PASSWORD UTENTE

#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.

#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

#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)

#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

#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)

#DrupalD

aysITSCREENSHOT ELENCO MODULI SUL SISTEMA/1

#DrupalD

aysITSCREENSHOT ELENCO MODULI SUL SISTEMA/2

#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.

#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.

#DrupalD

aysITSCREENSHOT PERMESSI DEL MODULO

#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.

#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.

#DrupalD

aysITSCREENSHOT FORM EDIT UTENTE

#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.

#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.

#DrupalD

aysITSCREENSHOT ABILITAZIONE EXPIRE PASSWORD

#DrupalD

aysITSCREENSHOT TTL PER SINGOLO RUOLO

#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

#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.

#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/

#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.

#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.

NICOLA PIGNATELLI

Web: http://www.pignatelli.com

Email: nicola@pignatelli.com

Facebook: npignatelli

Twitter: pignatellicom

Skype: nicola.pignatelli

Linkedin: /in/nicolapignatelli

SPONSOR

MEDIA PARTNER

top related