Development #50964
auth_fc: ne plus utiliser la vue d'enregistrement
0%
Description
Les attributs récupéres depuis FC seront mis à jour lors du SSO et il inutile de présenter cette page sur laquelle l'usager pourrait saisir des données différentes de celles de FranceConnect (genre commune, date de naissance).
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
- créant l'utilisateur immédiatement
- connexion de cet utilisateur
- vérification de la présence d'attributs requis vides
- 1. si oui, redirection vers la page d'édition du profil en conservant le next_url initial
- 2. si non, redirection vers le next_url initial
On peut ajouter un setting pour dire qu'on veut le comportement 1. dans tous les cas.
Mis à jour par Thomas Noël il y a environ 3 ans
... et pour régler le cas "cocher la case CGU", avoir un mapping configurable des attributs, qui poserait un "True" sur la case à cocher quand on arrive de FC ? (Parce que sinon cet attribut ne sera jamais là et on arrivera toujours sur le comportement 1)
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Lié à Support #50980: FranceConnect: avoir un setting permettant de remplir automatiquement un champ obligatoire du profil usager ajouté
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Sujet changé de FranceConnect: ne pas présenter la page de completion de création du compte à registration: débrancher la vue de finalisation de création du compte
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
Je me rends compte que lors de la création du compte via FC, le token contient (testé sur la recette d'Arles):
{'next': '/fc/callback/?next=/idp/saml2/continue%3Fnonce%3D_C8CA30D5B74232D5440E4C33EEA54BC2', 'email': 'test@yopmail.com', 'title': 'female', 'last_name': 'DURANTÉÀÈÙҌƌÆ', 'first_name': 'Julieéàèùòœæœæ', 'no_password': True, 'valid_email': False, 'confirm_data': 'required', 'franceconnect': True, 'lieu_de_naissance': '2B002', 'pays_de_naissance': '99100', 'authentication_method': 'france-connect', 'nom_dusage_si_different': ''}
Cela fait qu'après la completion des infos usager, il est de nouveau rédirigé vers FC, qui demande la confirmation pour continuer vers Publik, au lieu d'être loggué et avoir les messages "Votre compte a été créé" et "Votre compte a été lié au compte FC ...".
Il doit y avoir quelque chose que a changé côté FranceConnect car je n'avais pas ce comportement la semaine dernière.
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Sujet changé de registration: débrancher la vue de finalisation de création du compte à registration: débrancher la vue de finalisation de création du compte quand on arrive de FranceConnect
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Fichier 0001-registration-log-in-user-automatically-on-account-ac.patch 0001-registration-log-in-user-automatically-on-account-ac.patch ajouté
- Tracker changé de Support à Bug
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
On s'est mal compris quelque part, le but n'est pas de complexifier la vue d'enregistrement mais de la débrancher du module FranceConnect totalement, et de créer directement l'utilisateur. Il ne devrait y avoir aucune modification en dehors de authentic2_auth_fc.
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
- Tracker changé de Bug à Development
- Sujet changé de registration: débrancher la vue de finalisation de création du compte quand on arrive de FranceConnect à auth_fc: ne plus utiliser la vue d'enregistrement
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Fichier 0001-auth_fc-skip-account-activation-view-create-and-log-.patch 0001-auth_fc-skip-account-activation-view-create-and-log-.patch ajouté
En effet, je suis mal parti.
Nouveau patch qui modifie uniquement la vue dans auth_fc
.
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
- Statut changé de Solution proposée à En cours
- Assigné à mis à Serghei Mihai (congés, retour 15/05)
RegistrationView n'est plus nécessaire et la création du compte n'est pas complète ici (pas de création de FcAccount).
Il faut en fait ajouter la création du compte sans condition dans le backend, simplement ignorer le mail s'il existe déjà mais que le compte visé a déjà une liaison (ou alors en faire un cas d'erreur en posant un message "Votre email sur FranceConnect (xxxx@ddd.com) est déjà liée au compte yyyy nous ne pouvons vous créer un compte.").
Coté vue de login au moment du retour vers next_url, vérifier les champs requis et s'ils y en a des non pré-remplis, rediriger vers la vue de profil.
Si la vue disparaît il faut aussi supprimer ce qui l'utilise dans authenticators.py et les templates associés.
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
Benjamin Dauvergne a écrit :
Il faut en fait ajouter la création du compte sans condition dans le backend
Cela veut dire que le setting A2_FC_CREATE
perd son sens et peut être viré. On est d'accord?
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
Serghei Mihai a écrit :
Cela veut dire que le setting
A2_FC_CREATE
perd son sens et peut être viré. On est d'accord?
Oui.
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Fichier 0001-auth_fc-remove-registration-view-create-and-log-in-u.patch 0001-auth_fc-remove-registration-view-create-and-log-in-u.patch ajouté
- Statut changé de En cours à Solution proposée
Benjamin Dauvergne a écrit :
(ou alors en faire un cas d'erreur en posant un message "Votre email sur FranceConnect (xxxx@ddd.com) est déjà liée au compte yyyy nous ne pouvons vous créer un compte.").
Ce cas est déjà géré dans le code, j'ai l'impression:
messages.warning( request, _('Your FranceConnect email address \'%s\' is already used by another ' 'account, so we cannot create an account for you. Please create an ' 'account with another email address then link it to FranceConnect ' 'using your account management page.') % email)
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
J'ai pas relu encore mais j'adore tout ce rouge dans le patch :)
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
1. si user_info ne contient pas de mail ou si l'email n'est pas unique il n'y a pas à faire de recherche sur les utilisateurs (dans authenticate)
2. on devrait poser un message lors de la redirection vers profile-edit ("Les informations suivantes sont obligatoires pour vous inscrire : x, y, z")
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Statut changé de Solution validée à En cours
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Fichier 0001-auth_fc-remove-registration-view-create-and-log-in-u.patch 0001-auth_fc-remove-registration-view-create-and-log-in-u.patch ajouté
- Statut changé de En cours à Solution proposée
Ok.
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
user_filter = {'deleted__isnull': True}
deleted n'existe plus. En fait tout le code autour de user_filter m'a l'air de traîner d'avant au lieu d'être complètement déplacé dans un block "on a un email et il doit être unique".
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
- Statut changé de Solution proposée à En cours
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
Benjamin Dauvergne a écrit :
[...]
deleted n'existe plus.
D'acc.
En fait tout le code autour de user_filter m'a l'air de traîner d'avant au lieu d'être complètement déplacé dans un block "on a un email et il doit être unique".
La même logique de recherche s'applique à 2 endroits différents, dans le backend et la vue. Je vais voir comment factoriser ça.
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Fichier 0001-auth_fc-remove-registration-view-create-and-log-in-u.patch 0001-auth_fc-remove-registration-view-create-and-log-in-u.patch ajouté
- Statut changé de En cours à Solution proposée
Voilà, le filtre est calculé dans la vue et transmis au backend.
Mis à jour par Benjamin Dauvergne il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
Serghei Mihai a écrit :
Voilà, le filtre est calculé dans la vue et transmis au backend.
C'est pas terrible, mais je valide, ça marche je suppose parce que coté vue if not user and email_present_and_unique:
ne permet l'enregistrement que pour les comptes FC avec une adresse mail (on tombera certainement dans des cas où il faudra permettre sans un jour). En fait la liaison avec compte existant aurait du être déporté dans authenticate aussi pour éviter d'appliquer la même logique deux fois.
Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
Je suis d'accord qu'il manque des choses, mais je ne veux pas tout mélanger ici. Je vais faire des tickets à côté.
commit c79cc3963e4d6ce3e51a95bb09c2cf291527a4c4 (HEAD -> master, origin/main) Author: Serghei Mihai <smihai@entrouvert.com> Date: Thu Apr 1 12:30:31 2021 +0200 auth_fc: remove registration view, create and log in user (#50964)
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
auth_fc: remove registration view, create and log in user (#50964)