Closed rravelli closed 7 months ago
@rravelli Quelques remarques au sujet des user pour bien gérer les comptes temporaires, que m'avaient faites JYM à l'époque où je lui en avais parlé :
Ça pourra faire un autre ticket peut-être, je le mets juste là pour pas l'oublier
@rravelli Quelques remarques au sujet des user pour bien gérer les comptes temporaires, que m'avaient faites JYM à l'époque où je lui en avais parlé :
- niveau database, il faudrait définir le mail et le username en champ unique
- il faudrait aussi demander la date de naissance (cf pourquoi ci-dessous)
- pour vérifier qu'on a pas de doublon de compte, on utilise pour l'instant uniquement le mail mais ça suffit pas à cause des comptes temporaires. L'astuce serait donc de comparer le triplet (prénom, nom, date de naissance) pour vérifier que l'utilisateur n'a pas déjà créé un compte, en slugifiant prénom et nom (i.e. enlever les espaces et remplacer les é par e, etc.)
- pour le format de stockage des noms et prénoms, on les stocke actuellement en minuscules dans la DB et on les reformate à chaque fois, ce qui est assez long. Perso je serais pour stocker dans la DB les noms et prénoms déjà formatés (on les formate en TitleCase à l'inscription pour éviter les noms horribles en MAJUSCULES, et l'utilisateur peut ensuite le modifier sans reformatage de notre part si la casse est fausse (peut être le cas pour les étrangers))
Ça pourra faire un autre ticket peut-être, je le mets juste là pour pas l'oublier
Quelques remarques:
username
est déjà par défaut unique dans AbstractBaseUser
(et donc dans le modèle actuel et le modèle custom)Pour la vérif, 2 raisons pour utiliser les birthdate :
Description
Passer vers une table
User
custom via https://code.djangoproject.com/ticket/25313#comment:24 et implémenter directement l'authentification par mail.Definition of done
The ticket can be considered as done if all theses criteria are completed:
User
customEmailBackend
Technical strategy
User
par unget_user_table()
account
account.User
dans les settings djangoaccount
et créer une migration custom comme décrit dans https://code.djangoproject.com/ticket/25313#comment:24User
USERNAME_FIELD
et faire un manager custom