Bug #57574
messages d'erreur au retour d'un sso qui s'affichent au mauvais moment
0%
Description
J'ai un Authentic qui est SP d'un IdP SAML. Au retour de ce dernier, une erreur s'affiche sur la page /accounts/saml/login/ : « Aucun utilisateur trouvé pour l’identifiant SAML xxx »
Si on retourne sur /login, un autre message d'erreur s'affiche alors (en fait, le bon) : « /!\ la création de l’utilisateur a échoué sur un attribut obligatoire absent : unknown saml_attribute {'mapping': {'attribute': 'email', 'mandatory': True, 'saml_attribute': 'email'}} »
Il faudrait que ce message s'affiche en lieu et place du premier (et, éventuellement, qu'il soit un peu moins cabalistique)
Demandes liées
Historique
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Assigné à mis à Valentin Deniaud
Le problème c'est que templates/mellon/user_not_found.html n'affiche pas les messages django, ajouter un bout de code dedans pour les afficher suffit à corriger le problème.
Mais grosse galère pour savoir où faire le patch.
Après investigation, dans publik-base-theme, templates/mellon/base.html, on trouve {% extends theme_base %}
.
C'est pareil pour templates/authentic2/base.html, or ce dernier inclut la gestion explicite des messages, donc mettons qu'il s'agit de faire la même chose pour mellon. Je vais aller créer un ticket publik-base-theme.
(j'ai pendant un moment essayé de voir si ce theme_base ne pourrait pas intégrer un block messages mais c'est du code hobo qui va interroger une vue combo, j'ai l'impression que ça renvoie combo/page_template.html
et manque de bol il y a déjà un block messages, j'ai jeté l'éponge là)
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Lié à Development #58205: templates/mellon/base.html, afficher les messages ajouté
Mis à jour par Thomas Noël il y a plus de 2 ans
Dans src/authentic2_auth_saml/ il y a déjà un templates/mellon/base.html, ce n'est pas plutôt là qu'on devrait jouer ? Parce que c'est aussi dans authentic2_auth_saml que le « messages.error(...) » est fait ...?
Mis à jour par Valentin Deniaud il y a plus de 2 ans
Thomas Noël a écrit :
Dans src/authentic2_auth_saml/ il y a déjà un templates/mellon/base.html
Eh non ce template est écrasé par celui de publik-base-theme, va savoir à quoi il sert, peut-être pour les tests ? Auquel cas je pourrais faire un patch en miroir ici, il sera décoratif pour ce qui est de nos déploiements mais il prouvera que ça marche.
Mis à jour par Thomas Noël il y a plus de 2 ans
Valentin Deniaud a écrit :
je pourrais faire un patch en miroir ici, il sera décoratif pour ce qui est de nos déploiements mais il prouvera que ça marche.
Ca m'irait bien, à moi, ce patch miroir, pour rester un peu "consistant" dans Authentic2... (voire dans mellon ? J'y vois déjà actuellement un messages.warning alors que jamais on n'a de messages dans les templates)
Mis à jour par Valentin Deniaud il y a plus de 2 ans
Thomas Noël a écrit :
Ca m'irait bien, à moi, ce patch miroir, pour rester un peu "consistant" dans Authentic2... (voire dans mellon ? J'y vois déjà actuellement un messages.warning alors que jamais on n'a de messages dans les templates)
En fait les templates héritent de gadjo/base.html, qui gère l'affichage des messages. Ici le bug c'était vraiment une histoire de thème...
Pour ce qui est d'avoir un test, c'est trop compliqué, reproduire le parcours jusqu'à cette erreur ce serait copier un bon bout des tests de mellon dans a2 (mocker un idp, tout ça, il n'y a rien (tu avais d'ailleurs fait la même remarque #33743#note-4)). J'ai quand même essayé d'écrire un test bête qui fasse un render du template, mais en fait ça prend celui de django-mellon et pas celui de authentic2_auth_saml, bref c'est un beau bordel.
Mis à jour par Thomas Noël il y a plus de 2 ans
Ok, bien d'accord pour les chemins difficiles à suivre. Je pense qu'on peut rejeter ce ticket et basculer vers #58205
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Statut changé de Nouveau à Rejeté
À corriger dans #58205
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Lié à Development #59519: virer mellon/base.html et corriger le paramètre template_base ajouté