Projet

Général

Profil

Development #50964

auth_fc: ne plus utiliser la vue d'enregistrement

Ajouté par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Catégorie:
-
Version cible:
-
Début:
09 février 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à Authentic 2 - Support #50980: FranceConnect: avoir un setting permettant de remplir automatiquement un champ obligatoire du profil usagerRejeté09 février 2021

Actions

Révisions associées

Révision c79cc396 (diff)
Ajouté par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans

auth_fc: remove registration view, create and log in user (#50964)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

J'ai un plan plus simple en tête; débrancher complètement l'usage de la vue d'enregistrement en :
  • 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.

#2

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)

#3

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans

Je vous suis.

#4

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é
#5

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
#6

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.

#7

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
#8

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans

#9

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.

#10

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
#11

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans

En effet, je suis mal parti.
Nouveau patch qui modifie uniquement la vue dans auth_fc.

#13

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 () 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.

#14

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?

#15

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.

#17

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans

Benjamin Dauvergne a écrit :

(ou alors en faire un cas d'erreur en posant un message "Votre email sur FranceConnect () 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)

#18

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 :)

#19

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")

#20

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans

  • Statut changé de Solution validée à En cours
#22

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".

#23

Mis à jour par Benjamin Dauvergne il y a environ 3 ans

  • Statut changé de Solution proposée à En cours
#24

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.

#25

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 3 ans

Voilà, le filtre est calculé dans la vue et transmis au backend.

#26

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.

#27

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)

#28

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

Formats disponibles : Atom PDF