ZOD

Registrazione members con invio password autogenerata

Recommended Posts

ZOD    2

Questa settimana per due volte mi è capitata questa necessità:

  • Importare utenti members (questo lo farei con il modulo xtmembers_outlook)
  • Assegnare a tutti una propria password e inviarla alla loro email

Da funzioni normali o da moduli mi sembra non sia possibile. I workaround che ho individuato sono due:

  1. Non importare nessuno, inviare una newsletter che chiede di registrarsi, link che punta al form di registrazione del sito, si arrangia l'utente
  2. Importare tutti, identica password, poi usare il modulo recupero password per forzare un invio in cui si richiede di generare una nuova password (ma in questo caso è una palla usare il modulo per 400 volte). Cmq non è ottima come soluzione, perché l'utente prima pigia il link in email per verificare che vuole davvero cambiare pass, poi attende l'arrivo di una seconda email, e solo allora ha la password... tutto lavoro che vorrei l'utente evitasse. Non ho capito se posso sfruttare quella funzione built in di contao per autogenerare io la pass, e poi inviarla alla sua email, tutto con php custom... che fa un ciclo per tutti i members.

Ho trovato solo un post in cui parlano della questione, e non mi sembra chiarissimo: https://community.contao.org/en/showthread.php?23327-Encryption-for-password

Modificato da ZOD

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
PaoloB    0

In questo post, viene suggerito di utilizzare questa estensione per l'import dei contatti. Viene indicato che la cifratura della password potrebbe essere chiesta come nuova funzione, ma credo che sia molto semplice implementarla modificando l'estensione.

Una volta fatta, puoi inviare una newsletter agli utenti indicando chiaramente login e relativa password.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
ZOD    2

Forse ho capito. Quindi dici che autogenero in chiaro la password nella lista CSV da importare, poi modifico il modulo aggiungendo la cifratura per la variabile password, nella funzione  importMembersFromCSV del modulo, vedo questa riga: https://github.com/hschottm/xtmembers_outlook/blob/73fee039fbf791b18db47ca384d42d193492d7db/classes/OutlookTools.php#L428

https://github.com/hschottm/xtmembers_outlook/blob/73fee039fbf791b18db47ca384d42d193492d7db/classes/OutlookTools.php#L428

basterebbe aggiungere nello switch questo (sempre che $idx_password esista e abbia senso metterla qui):

case 'password':
$idx_password = \Encryption::hash($i);
break;

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
ZOD    2

Non so perché non riesco a modificare il messaggio precedente (dopo soli 6 minuti, stavo rileggendo), conteneva un errore.

Volevo dire che era errata la riga da modificare, nella funzione  importMembersFromCSV del modulo, penso sia questa la riga per importare: https://github.com/hschottm/xtmembers_outlook/blob/73fee039fbf791b18db47ca384d42d193492d7db/classes/OutlookTools.php#L503

https://github.com/hschottm/xtmembers_outlook/blob/73fee039fbf791b18db47ca384d42d193492d7db/classes/OutlookTools.php#L428

basterebbe aggiungere nello switch questo:

case 'password':
$password = \Encryption::hash($i);
break;

 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
PaoloB    0

Esattamente!

Poi però occorre trovare il punto in cui fa l'insert dei dati ed inserire anche la password tra i campi da aggiungere

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
PaoloB    0
8 minuti fa, ZOD dice:

Volevo dire che era errata la riga da modificare, nella funzione  importMembersFromCSV del modulo,

Questa mi sembra sia la funzione di insert, mentre quella precedente leggeva i dati dal CSV, per cui ti servono entrambe.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Andrea B.    1

Avevo avuto un problema simile su una 2.11 molto tempo fa, non ricordo come ho risolto il discorso di comunicargliela, ma sono sicuro che ho usato questa funzione PHP per generare un batch per inserire le password criptate nella tabella tl_member, così come vuole Contao

Ovviamente la tua necessità è leggermente diversa, ma se fai un inserimento massivo degli utenti può tornarti utile

$stringa  = "12345678"; //la pass che gli assegno in chiaro

function generaPass($stringa) {
  $strSalt = substr(md5(uniqid(mt_rand(), true)), 0, 23);
  $strPassword = sha1($strSalt . $stringa);
  $passGenerata = $strPassword . ':' . $strSalt;
  return $passGenerata;
}

 

  • Upvote 1

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
ZOD    2

Grazie Andrea, anche questo potrebbe essere utile. Ho trovato anche uno script utile per inviare tutte le email di benvenuto con la password, caricando i dati da file CSV. Devo ancora modificarlo e provarlo: https://www.formget.com/send-personalized-email-to-multiple-recipients/

Modificato da ZOD
  • Upvote 1

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora