Development #60125
évaluation d'affichage bloc de connexion vs variables absentes
0%
Description
On a des expressions type
'backoffice' in login_hint or 'XXX' in service_ou_slug
mais service_ou_slug n'est pas toujours défini, ce qui peut donner cette erreur,
evaluate_condition: 'backoffice' in login_hint or 'XXX' in service_ou_slug ctx={'dnsbl': <function dnsbl at 0x7fb94af11bf8>, 'headers': <authentic2.utils.evaluate.HTTPHeaders object at 0x7fb948b7cba8>, 'remote_addr': '...', 'login_hint': set(), 'id': '0'} ExpressionError ["variable non définie\xa0: name 'service_ou_slug' is not defined"]
J'aurai été pour mettre à None,
@@ -350,6 +350,10 @@ def login(request, template_name='authentic2/login.html', redirect_field_name=RE show_ctx['service_ou_slug'] = service.ou and service.ou.slug show_ctx['service_slug'] = service.slug show_ctx['service'] = service + else: + show_ctx['service_ou_slug'] = None + show_ctx['service_slug'] = None + show_ctx['service'] = None
mais ça va foirer aussi vu qu'on fait les comparaisons avec "in".
C'est cependant quelque chose qui pourrait juste être changé, et qu'on écrive service_ou_slug == 'XXX'
. (?)
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
Je serai pour garantir que le variable a toujours le même type et donc avoir comme valeur par défaut la chaîne vide, je ne pense pas que ça pose de problème.
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Fichier 0001-misc-always-add-service-variables-to-login-condition.patch 0001-misc-always-add-service-variables-to-login-condition.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
À noter que ça change le comportement quand un service inconnu est passé : avant service_slug == 'portal'
comme condition affichait le bloc de connexion quand il n'y avait pas de service "portal", ça ne l'affichera désormais plus. (le test rend compte de ça).
Mis à jour par Nicolas Roche il y a plus de 2 ans
J'aurai été pour mettre à None,
Ça correspond plus ou moins à ce que je proposait pour https://dev.entrouvert.org/issues/55127#note-1
et du coup je préfère laisser la main à Benjamin ici.
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Pour le cas service == "portal"
, alors None
ou ''
ça ne change rien ; et rien à voir avec ce qui était proposé dans #55127, qui était de dire que par défaut il fallait afficher, pour éviter de bloquer des gens hors du service.
Mais si on compte que beaucoup de gens vont jouer avec in
et qu'on souhaite éviter de leur dire à chaque fois « c'est facile il suffit d'écrire (service and 'truc' in service)
» alors ''
c'est mieux, IMHO.
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit c95fe470a40e34ffb9c8d4acb1b263c9db679cd2 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Wed Dec 29 09:53:37 2021 +0100 misc: always add service variables to login condition context (#60125)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: always add service variables to login condition context (#60125)