-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ne demande pas de mot de passe aux utilisateurs qui n'en ont pas #6420
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je crois que ta solution ne marche pas en l'état. Le champ password
est obligatoire, et ne pas l'afficher ne le retire pas de la validation que fait Django. Il faudrait probablement changer la validation du champ (ou sa définition, ou la manière dont le formulaire est instancié, ...), pour qu'il ne soit plus obligatoire.
Autrement, il me semble que tu ajoutes un élément None
dans la liste de champs filés à crispy, vu que la fonction insert_...
ne retourne rien dans certains cas. Faudrait voir comment crispy se comporte avec ça, mais dans l'absolu, c'est pas très propre.
Effectivement tu as raison ça ne fonctionnait pas en l'état et il m'a fallu supprimer le champ
Crispy prend en compte cette possibilité et ignore les champs qui serait |
Je suis plutôt confiant sur le bon fonctionnement de la déconnexion et du changement de pseudo ou d'adresse de courriel pour tous les membres (inscription classique et inscription via les réseaux sociaux), par contre je ne sais pas trop si la possibilité aux membres inscrits via les réseaux sociaux de se créer un mot de passe va poser un soucis ou pas. C'est un cas à tester sur la bêta avec attention. |
j'ai testé avec un compte google: lorsqu'on se reconnecte après changement de mot de passe, cela ne doit pas le demander ? (ça le demande en revanche sur la page changement de login) |
En fait, le mot de passe actuel ne doit être demandé qu'aux comptes qui ont un mot de passe. On demande donc toujours le mot de passe actuel aux comptes inscrits de manière classique pour les changements de pseudo, courriel et mot de passe ainsi que pour la suppression du compte. On ne demande pas le mot de passe aux comptes inscrits via les réseaux sociaux, sauf s'ils ont créé un mot de passe. À partir du moment où un compte inscrit via les réseaux sociaux a créé un mot de passe, alors ce mot de passe est demandé pour les changements de pseudo, courriel et mot de passe ainsi que pour la suppression du compte. |
Dans ce cas, je valide : c'est bien le comportement que j'ai pu observer |
Merci pour la QA ! |
Enfin, pour ce qui est du côté purement technique, la solution me convient. QA OK ✔️ |
(cherry picked from commit 60ad124)
Dans les formulaires sensibles, on continue d'exiger le mot de passe actuel pour les utilisateurs qui en ont un (ceux qui se sont inscrits de manière classique), mais on ne le demande pas aux utilisateurs qui n'en ont pas (ceux qui se connectent via leur réseau social).
Cette vérification est faite via la fonction
User.has_usable_password()
fournie par Django (et pas avec le champUser.password
).Fixes #6419
QA : Étant donné que la connexion avec les réseaux sociaux ne fonctionnent pas actuellement en local, il faudra vérifier le bon fonctionnement sur la bêta. Pour la même raison, il me parait difficile d'ajouter des tests de non régression là-dessus.
Sur les pages de désinscription, changement de pseudo et courriel ainsi que changement de mot de passe :