Bug #10267
Préremplissage du formulaire de création de compte à partir de données FranceConnect et liaison de compte consécutive à la création
100%
Description
En attendant #10062 et comme nous n'avons pas encore de cas d'usage sur les attributs d'identité certifiés depuis l'identité pivot, on peut dans un premier temps simplement offrir le pré-remplissage du formulaire de création de compte lorsqu'il est précédé (dans une même session) d'un sso France Connect.
Lorsque l'utilisateur a souhaité se connecter avec FranceConnect alors qu'il n'a pas de compte locale, il sera invité à se créer un compte (ou à se connecter). En supposant donc qu'il choisit de se créer un compte, après la saisie de l'email et le clique sur le lien d'activation, il verra le formulaire pré-remplie s'il a toujours ses sessions django et FC locale. J'ai mis par défaut le matching nom prénom comme exemple et pour matcher avec 3M.
Si la création réussie et que la session FC est toujours active localement, on crée une liaison. Pour cela on repasse par la vue login-or-link du plugin. Cette vue rejoue la danse oauth2. C'est transparent pour l'usager sauf s'il n'a plus de session sur FC alors qu'il a toujours une session FC locale.
Fichiers
Révisions associées
Implement prefilling of registration form (fixes #10267).
Historique
Mis à jour par Mikaël Ates il y a environ 8 ans
- Sujet changé de Préremplissage du formulaire de création de compte à partir de données FranceConnect et liaison de compte à Préremplissage du formulaire de création de compte à partir de données FranceConnect et liaison de compte consécutive à la création
Mis à jour par Mikaël Ates il y a environ 8 ans
- Fichier 0001-Handle-account-creation-after-FC-login.patch ajouté
Mis à jour par Mikaël Ates il y a environ 8 ans
- Fichier
0001-Handle-account-creation-after-FC-login.patchsupprimé
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
Le patch n'est pas acceptable tel quel car il injecte des détails France Connect dans authentic, j'ai ouvert le #10268 sur une idée un peu différente.
Pour continuer sur cette idée il faudra déconnecter l'idée de pré-remplissage du formulaire d'inscription des détails du plugin France Connect, ça pourrait passer par une simple méthode sur l'object plugin get_registration_form_prefill(self, request)
qui retournerait les données à pré-remplir si fc-user_info
est présent dans la session.
Idem pour le lien avec les données FranceConnect, il faudrait une méthode finish_registration(self, request, user)
sur le plugin qui est appelé en fin de processus d'enregistrement, ça pourra être repris par les méthodes d'authentification sociales (Google, Facebook, etc..) mais aussi toutes les méthodes d'authentification forte (on présente un certificat inconnu, on stocke en session et on finit en reliant le certificat au nouveau compte).
Mis à jour par Mikaël Ates il y a environ 8 ans
- Fichier 0001-Get-prefilling-data-from-backends-for-the-resgistrat.patch 0001-Get-prefilling-data-from-backends-for-the-resgistrat.patch ajouté
- Fichier 0001-Implement-prefilling-of-resgistration-form.patch 0001-Implement-prefilling-of-resgistration-form.patch ajouté
Pour le preremplissage, utilisation de accumulate_from_backends qui attend une liste. Les fonctions retournent donc un ou plusieurs dictionnaires dans une liste. Les clés du dictionnaire sont les noms des champs du formulaire et les valeurs des listes de valeurs. Après la collecte des dictionnaire ceux-ci sont mergés en un dictionnaire ou les valeurs sont des ensembles qui seront transformés en une chaine pour le préremplissage.
Deux patchs, un pour authentic et un pour le plugin FC.
Pour la liaison de compte, l'url de succès renvoie bien déjà vers le plugin, la proposition précédente était donc inutile. Je ne propose donc pas de patch pour les opérations en fin d'enregistrement.
Mis à jour par Mikaël Ates il y a environ 8 ans
- Fichier
0001-Handle-account-creation-after-FC-login.patchsupprimé
Mis à jour par Mikaël Ates il y a environ 8 ans
- Statut changé de Nouveau à Résolu (à déployer)
- % réalisé changé de 0 à 100
Appliqué par commit authentic2-auth-fc|53ba94242b7b592b7391fc6c75a551c6b3739267.
Implement prefilling of registration form (fixes #10267).