Projet

Général

Profil

Development #63942

set_mandatory_roles: chercher dans l'OU par défaut en cas de "multiple objects returned"

Ajouté par Thomas Noël il y a environ 2 ans. Mis à jour il y a presque 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
14 avril 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à Authentic 2 - Support #63944: tests ldap cassés en local (?)Fermé14 avril 2022

Actions

Révisions associées

Révision c303ab6f (diff)
Ajouté par Paul Marillonnet il y a environ 2 ans

ldap_backend: search mandatory roles in default ou when ambiguous (#63942)

Historique

#1

Mis à jour par Paul Marillonnet il y a environ 2 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Paul Marillonnet

Ok.

#2

Mis à jour par Paul Marillonnet il y a environ 2 ans

#3

Mis à jour par Paul Marillonnet il y a environ 2 ans

#4

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

#5

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.

#7

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

#8

Mis à jour par Paul Marillonnet il y a environ 2 ans

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.

#9

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.

#10

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

Mis à jour par Transition automatique il y a presque 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#12

Mis à jour par Transition automatique il y a presque 2 ans

Automatic expiration

Formats disponibles : Atom PDF