authn: provide a single field for username and phone number (#72449) #41

Merged
pmarillonnet merged 1 commits from wip/72449-login-authn-single-identifier-field into main 2023-05-02 11:04:16 +02:00
Owner

Rien de bien méchant.

Rien de bien méchant.
Author
Owner

J’ai oublié qu’on peut restreindre encore la recherche lorsque l’usager saisit un numéro au format international dans cette mire de login, je corrige.

J’ai oublié qu’on peut restreindre encore la recherche lorsque l’usager saisit un numéro au format international dans cette mire de login, je corrige.
pmarillonnet force-pushed wip/72449-login-authn-single-identifier-field from ea90060bb0 to e719810125 2023-04-24 09:47:18 +02:00 Compare
Author
Owner

J’ai oublié qu’on peut restreindre encore la recherche lorsque l’usager saisit un numéro au format international dans cette mire de login, je corrige.

C’est corrigé dans la branche, la PR est prete à etre relue.

> J’ai oublié qu’on peut restreindre encore la recherche lorsque l’usager saisit un numéro au format international dans cette mire de login, je corrige. C’est corrigé dans la branche, la PR est prete à etre relue.
pmarillonnet force-pushed wip/72449-login-authn-single-identifier-field from e719810125 to b755e874d2 2023-04-24 10:16:04 +02:00 Compare
bdauvergne requested changes 2023-04-24 22:54:26 +02:00
bdauvergne left a comment
Owner

2/3 détails.

2/3 détails.
@ -47,13 +50,17 @@ class ModelBackend(BaseModelBackend):
try:
if app_settings.A2_ACCEPT_EMAIL_AUTHENTICATION and UserModel._meta.get_field('email'):
queries.append(models.Q(**{'email__iexact': username}))
except models.FieldDoesNotExist:
Owner

Tu peux virer les deux FieldDoesNotExist ça doit date d'une époque où je pensais réutiliser authentic avec un autre model User. Ce train est parti. (ou alors j'ai oublié un truc mais normalement le champ email et phone sont toujours là).

Tu peux virer les deux FieldDoesNotExist ça doit date d'une époque où je pensais réutiliser authentic avec un autre model User. Ce train est parti. (ou alors j'ai oublié un truc mais normalement le champ email et phone sont toujours là).
@ -57,0 +58,4 @@
if (pn := parse_phone_number(username)) and is_valid_number(pn):
query = {'phone__endswith': str(pn.national_number)}
if username.startswith(('00', '+')):
query.update({'phone__startswith': f'+{pn.country_code}'})
Owner

A priori si on un format international on doit pouvoir normaliser et recherche un exact match... en fait y a que deux cas, soit on a parsé un numéro local interprété comme un numéro du code pays par défaut et très très rarement c'est pas bon, soit le numéro était au format international dès le départ et ça ne peut être que ça donc exact match.

Pour l'instant je ferai un exact match dans tous les cas, les gens qui ne sont pas dans le code pays par défaut doivent taper un numéro au format international, point.

A priori si on un format international on doit pouvoir normaliser et recherche un exact match... en fait y a que deux cas, soit on a parsé un numéro local interprété comme un numéro du code pays par défaut et très très rarement c'est pas bon, soit le numéro était au format international dès le départ et ça ne peut être que ça donc exact match. Pour l'instant je ferai un exact match dans tous les cas, les gens qui ne sont pas dans le code pays par défaut doivent taper un numéro au format international, point.
@ -745,8 +745,13 @@ def login_password_login(request, authenticator, *args, **kwargs):
form.fields['password'].widget.attrs['autofocus'] = True
else:
form.fields['username'].widget.attrs['autofocus'] = not (bool(context.get('block_index')))
phone_authn = app_settings.A2_ACCEPT_PHONE_AUTHENTICATION and get_user_model()._meta.get_field('phone')
Owner

get_user_model()._meta.get_field('phone') c'est toujours vrai.

`get_user_model()._meta.get_field('phone')` c'est toujours vrai.
pmarillonnet force-pushed wip/72449-login-authn-single-identifier-field from b755e874d2 to 990d975553 2023-04-26 09:06:52 +02:00 Compare
Author
Owner

Ok, d’accord avec tout, c’est pris en compte dans la branche.

Ok, d’accord avec tout, c’est pris en compte dans la branche.
pmarillonnet requested review from bdauvergne 2023-04-26 09:07:42 +02:00
bdauvergne approved these changes 2023-05-02 09:42:48 +02:00
bdauvergne left a comment
Owner

Ok.

Ok.
pmarillonnet force-pushed wip/72449-login-authn-single-identifier-field from 990d975553 to e1fa32b83e 2023-05-02 10:50:11 +02:00 Compare
pmarillonnet merged commit e1fa32b83e into main 2023-05-02 11:04:16 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/authentic#41
No description provided.