Development #63942
set_mandatory_roles: chercher dans l'OU par défaut en cas de "multiple objects returned"
0%
Description
Sur une configuration générales à tous les tenants de synchro LDAP avec :
"set_mandatory_roles": ["Debug & Support Entr'ouvert"],
en mode Publik multi-collectivités, si ce rôle est défini sur plusieurs collectivités, on se retrouve avec :
error multiple objects returned, identifier is imprecise: couldn't retrieve role "Debug & Support Entr'ouvert"
Il serait préférable alors d'avoir un fallback qui chercher ce rôle dans l'OU par défaut.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Paul Marillonnet il y a environ 2 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Paul Marillonnet
Ok.
Mis à jour par Paul Marillonnet il y a environ 2 ans
- Lié à Support #63944: tests ldap cassés en local (?) ajouté
Mis à jour par Paul Marillonnet il y a environ 2 ans
- Fichier 0001-ldap_backend-search-mandatory-roles-in-default-ou-wh.patch 0001-ldap_backend-search-mandatory-roles-in-default-ou-wh.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a environ 2 ans
Tu ne veux pas gérer le cas également pour Role.objects.get(slug=slug, **kwargs) ?
Mis à jour par Thomas Noël il y a environ 2 ans
Et (surtout), il ne faut pas faire cette recherche si l'ou est précisée dans le rôle cherché. C'est d'ailleurs ou__slug qu'il faut gérer à ce sujet, et pas kwargs.pop('ou', None)
qui ne fera jamais rien, amha.
Mis à jour par Paul Marillonnet il y a environ 2 ans
- Fichier 0001-ldap_backend-search-mandatory-roles-in-default-ou-wh.patch 0001-ldap_backend-search-mandatory-roles-in-default-ou-wh.patch ajouté
Oui complètement.
Mis à jour par Thomas Noël il y a environ 2 ans
Mode pénible mais bon, j'aurais directement écrit :
Role.objects.get(name=slug, ou=get_default_ou() ...
sans passer par la création variable default_ou = get_default_ou()
qui sera la plupart du temps inutile. Ça fait toujours une requête de gagnée.
Aussi pour le message d'erreur, je conçois qu'il est relou à écrire, j'ai pas mieux... On reverra tout ça dans un ldap3_backend.py ;-)
Mis à jour par Paul Marillonnet il y a environ 2 ans
- Fichier 0001-ldap_backend-search-mandatory-roles-in-default-ou-wh.patch 0001-ldap_backend-search-mandatory-roles-in-default-ou-wh.patch ajouté
Thomas Noël a écrit :
Mode pénible mais bon, j'aurais directement écrit :
Role.objects.get(name=slug, ou=get_default_ou() ...
sans passer par la création variable
default_ou = get_default_ou()
qui sera la plupart du temps inutile. Ça fait toujours une requête de gagnée.
Oui oui aucun souci aucune pénibilité, tu as raison c’est mieux ainsi.
Aussi pour le message d'erreur, je conçois qu'il est relou à écrire, j'ai pas mieux... On reverra tout ça dans un ldap3_backend.py ;-)
Oui, #64246.
Mis à jour par Thomas Noël il y a environ 2 ans
- Statut changé de Solution proposée à Solution validée
A pousser quand jenkins devient Hulk.
Mis à jour par Paul Marillonnet il y a environ 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit c303ab6f04c22c3b1e04a04681ee9eec3ddee191 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Thu Apr 14 16:29:23 2022 +0200 ldap_backend: search mandatory roles in default ou when ambiguous (#63942)
Mis à jour par Transition automatique il y a presque 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
ldap_backend: search mandatory roles in default ou when ambiguous (#63942)