2016-05-23 1 views
1

J'ai enregistré un utilisateur dans une installation Weblate (un système de traduction basé sur Django) et entré une adresse e-mail incorrecte pour l'utilisateur. Après avoir essayé d'envoyer un e-mail de réinitialisation de mot de passe, j'ai reçu un e-mail Delivery Status Notification (Failure) du fournisseur de messagerie, avec le code d'erreur 550 Requested action not taken: mailbox unavailable. Par la suite, quelle que soit l'adresse e-mail que j'indique dans le formulaire de réinitialisation du mot de passe (même les autres utilisateurs déjà enregistrés), Django tente d'envoyer l'e-mail de réinitialisation à cette adresse e-mail incorrecte. Je reçois des messages de rebond similaires de la part du fournisseur de messagerie. Les e-mails envoyés ont la même adresse cible et le même paramètre id dans l'url de vérification, mais différents verification_code s.Réinitialiser le mot de passe bloqué sur un e-mail invalide

J'ai essayé de regarder dans les journaux, et la seule chose d'intérêt est:

INFO:weblate:sending notification reset on 2414792abd0d4bcb92fd654c2f020ac0 to [email protected] 

... qui ne m'a pas aidé dans la recherche par le code source de Django soit.

Y a-t-il une sorte de file d'attente de courrier électronique qui contient l'adresse incorrecte que je dois vider?

+0

Pouvez-vous essayer d'effacer vos cookies de session et voir si cela fonctionne? – solarissmoke

+0

@solarissmoke Cela a fonctionné. Merci, ça ne m'est pas arrivé. Voulez-vous l'écrire comme une réponse, afin que je puisse vous accorder vos points? –

+0

J'essaie juste de comprendre pourquoi c'est le cas, et je posterai une réponse avec des explications. – solarissmoke

Répondre

2

Weblate n'utilise pas la fonctionnalité de réinitialisation de mot de passe intégrée de Django mais utilise plutôt python-social-auth. En regardant the code, il semble qu'il utilise des variables de session pour transmettre des informations à/de python-social-auth. Le problème est que si une session existe déjà (c'est-à-dire qu'un utilisateur a demandé une réinitialisation du mot de passe), il ne rafraîchira pas la session si vous soumettez une nouvelle requête, quelle que soit l'adresse email que vous soumettez.

Solution: effacez vos cookies. Cela pourrait aussi valoir la peine de déposer un rapport de bogue?

+1

Il est maintenant corrigé dans Weblate, voir https://github.com/nijel/weblate/issues/1129 –