mot de passe vide bloque le formulaire de réinitialisation du mot de passe d'un utilisateur
*Scénario type:* * un administrateur crée des comptes pour de futurs utilisateurs en renseignant nom, mail, login mais SANS mot de passe * il envoie un mail à ces utilisateurs en leur donnant l'URL de la page "J'ai perdu mon mot de passe" (.../spip.php?page=spip_pass) afin qu'ils génèrent leur mot de passe * l'utilisateur saisit son mail dans le formulaire de cette page *squelettes-dist/formulaires/oubli.html* et il se prend en retour *"Erreur : vous n’avez plus accès à ce site."* Pour l'instant la seule alternative est de créer un mot de passe quelconque lors de la création du compte de l'utilisateur. Y a t'il une raison valide pour expliquer cette restriction de mot de passe vide à la réinitialisation? Sinon, le patch semble rapide: ligne 85 de *squelettes-dist/formulaires/oubli.php* remplacer: ``` } elseif ($r[1]['statut'] == '5poubelle' or $r[1]['pass'] == '') { ``` par ``` } elseif ($r[1]['statut'] == '5poubelle') { ``` *[EDIT]* ...et le patch n'est pas si rapide puisque le contrôle du passe vide est repris aussi dans la fonction *retrouve_auteur* de *squelette-dist/formulaires/mot_de_passe.php*... qui pourrait être modifié de la même manière: <pre> function retrouve_auteur($id_auteur, $jeton = '') { if ($id_auteur = intval($id_auteur)) { return sql_fetsel( '*', 'spip_auteurs', array('id_auteur=' . intval($id_auteur), "statut<>'5poubelle'", "pass<>''") ); } elseif ($jeton) { include_spip('action/inscrire_auteur'); if ($auteur = auteur_verifier_jeton($jeton) and $auteur['statut'] <> '5poubelle' and $auteur['pass'] <> '' ) { return $auteur; } } return false; } </pre> remplacé par: <pre> function retrouve_auteur($id_auteur, $jeton = '') { if ($id_auteur = intval($id_auteur)) { return sql_fetsel( '*', 'spip_auteurs', array('id_auteur=' . intval($id_auteur), "statut<>'5poubelle'") ); } elseif ($jeton) { include_spip('action/inscrire_auteur'); if ($auteur = auteur_verifier_jeton($jeton) and $auteur['statut'] <> '5poubelle' ) { return $auteur; } } return false; } </pre>
issue

Forge communautaire SPIP | Charte d'utilisation | Signaler un problème sur ce site