Expire della password... si può?

9 contenuti / 0 new
Ultimo contenuto
Expire della password... si può?

Ciao a tutti e bentrovati.

Al drupalday a Milano, conversando con alcuni ragazzi, è uscita fuori la questione delle password e della loro gestione.

A me servirebbe un modulo che determini il tempo di vita di una password, trascorso il quale l'utente è obbligato a cambiarla pena il blocco dell'utenza (o qualcosa del genere).

Non so se un modulo del genere esista, ma appunto uno di questi ragazzi di cui aihmé non ricordo il nome, mi ha detto che qualcosa esiste al riguardo.

Quindi... se mi leggi, me la dai una mano? ;)

Grazie,
Alessandro

Uhm.. c'è un modulo che permette di rendere disponibili nodi solo ad orari e giorni prefissati,o addirittura un modulo "role expire",i nomi nn li ricordo,ma potrebbero tornare utili per capire il funzionamento e per provare a modificarli no ? :)

Usa hook_user in un tuo modulo, che intercettano alcune azioni dell'utente

Il codice che ci devi mettere deve fare questo:
1) verifica la data di registrazione dell'utente
2) se è maggiore di X (chessò, se è passato un mese) genera una nuova password con user_password()
3) registra la nuova password nel database dell'utente e spedisci un messaggio via email e aggiorna la data di registrazione
4) usa drupal_goto() e manda l'utente in una pagina di avviso che la password è cambiata
5) Sbattilo fuori e rifallo loggare con la nuova pwd o gli fai continuare la navigazione

In "soldoni":
1) crea il file "newpassword.info" e mettici i dati del nuovo modulo
2) crea "newpassword.install" e non metterci nulla
3) crea "newpassword.module" e mettici il codice sotto (ovviamente con le opportune modifiche):

<?php
 
function newpassword_user($op, &$edit, &$account, $category = NULL) {
  switch (
$op) {
  case
'login':
    ****
Metti il codice quì nei parametri hai tutto quel che ti serve ***
       
salva password random user_password()
       
user_save($account, $array = array(), $category = 'account');
       
mail(.......);
       
drupal_goto('.....');
  }

?>

Ciao
Gianni

Grazie infinite!

Eppure pensavo che qualcosa del genere dovesse già esistere.

Può essere... hai provato a cercare tra i moduli? a me sembra di aver visto una cosa del genere, ma non ne sono sicuro.

Ciao
Gianni

giannigiusti wrote:
Usa hook_user in un tuo modulo, che intercettano alcune azioni dell'utente

Il codice che ci devi mettere deve fare questo:
1) verifica la data di registrazione dell'utente
2) se è maggiore di X (chessò, se è passato un mese) genera una nuova password con user_password()
3) registra la nuova password nel database dell'utente e spedisci un messaggio via email e aggiorna la data di registrazione

Ciao, il metodo suggerito, anche se (immagino) di facile implementazione, non mi sembra molto corretto...

la data di registrazione di un utente è un campo importante, e modificarne il contenuto per questo scopo, può portare a problemi non preventivati (IMHO)

problemi non necessariamente tecnici...

ad esempio, "l'autorevolezza" di un utente di un forum è data naturalmente da quello che scrive, ma per chi non segue assiduamente il forum, un parametro di valutazione può essere la data di iscrizione dell'utente e i post scritti....

ora se la data di creazione di utente viene aggiornata per permettere l'expire di un account, gli altri utenti si troveranno abbastanza confusi nel vedere che un nuovo utente ha al suo attivo (per esempio) 2000 post, oppure potrebbero prestare poca attenzione agli interventi di un "nuovo utente", mentre si sarebbero comportati in modo differente se l'utente fosse risultato "anziano"

potrebbero presentarsi problemi anche dal punto di vista tecnico... ad esempio il blocco "nuovi utenti" non si comporterà come dovrebbe comportarsi.

Il problema del blocco "nuovi utenti" è abbastanza irrilevante, ma altri blocchi/moduli potrebbero utilizzare il campo created in modo differente e per scopi molto più importanti...

un esempio banale su un modulo ipotetico: se io voglio avere la possibilità di cancellare un utente o di assegnare un ruolo in base all' "anzianità" di un utente... potrei ritrovarmi in una situazione molto spiacevole.

Credo sia meglio aggiungere un nuovo campo per creare un modulo del genere, modificare la data di creazione di un utente, potrebbe portare a troppi imprevisti.... e la vera data di registrazione sarebbe persa per sempre.

solo per 6.x:
Password Expire

prova anche:
Password Policy
dovrebbe avere questa funzione, almeno la versione per il ramo 6

Jean-Louis wrote:

Credo sia meglio aggiungere un nuovo campo per creare un modulo del genere, modificare la data di creazione di un utente, potrebbe portare a troppi imprevisti.... e la vera data di registrazione sarebbe persa per sempre.

Ciò che dici è abbastanza ovvio..... il mio era un esempio :-) relativo al campo data di registrazione, nel caso essa non venga utilizzata in altro modo.

Ciao
Gianni

giannigiusti wrote:

Ciò che dici è abbastanza ovvio..... il mio era un esempio :-) relativo al campo data di registrazione, nel caso essa non venga utilizzata in altro modo.

Il problema è che il campo data di registrazione ha un significato ben preciso, modificarne il valore, anche se attualmente non venisse utilizzata, può portare in futuro a problemi inaspettati... e di difficile soluzione.

Ero sicuro che il tuo fosse soltanto un esempio (ti ho ascoltato molto attentamente al drupalday... :) ), ma il forum ha memoria... mi sembrava giusto avvertire i futuri lettori che non è consigliabile modificare quel campo.

Per me è una cosa ovvia, per te lo stesso e forse anche per tutti gli altri, ma meglio andare sul sicuro :P