From c19c1ded22dbd9449a499abfd33081c0e727949e Mon Sep 17 00:00:00 2001 From: Benjamin Bohard Date: Mon, 1 Sep 2025 13:43:07 +0200 Subject: [PATCH] =?UTF-8?q?Pouvoir=20forcer=20=C3=A0=20nouveau=20l?= =?UTF-8?q?=E2=80=99=C3=A9tablissement=20dans=20le=20cas=20du=20changement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- patches.d/scribe-backend.patch | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/patches.d/scribe-backend.patch b/patches.d/scribe-backend.patch index f4878f6..a0e43d2 100644 --- a/patches.d/scribe-backend.patch +++ b/patches.d/scribe-backend.patch @@ -298,7 +298,7 @@ index 45ec338..0ec3129 100644 else: raise Exception('Unknown mode') diff --git usr/lib/python3/dist-packages/scribe/eoleuser.py usr/lib/python3/dist-packages/scribe/eoleuser.py -index 05569fd..b78c2e1 100644 +index 05569fd..f8b4ab3 100644 --- usr/lib/python3/dist-packages/scribe/eoleuser.py +++ usr/lib/python3/dist-packages/scribe/eoleuser.py @@ -361,25 +361,27 @@ class User(LdapEntry): @@ -394,7 +394,7 @@ index 05569fd..b78c2e1 100644 self._set_attr(login, 'LastUpdate', tool.format_current_date()) def _get_ead_type(self, login): -@@ -850,20 +864,27 @@ class User(LdapEntry): +@@ -850,22 +864,27 @@ class User(LdapEntry): return num_etab def get_user_dn(self, login, force_etab=None): @@ -405,23 +405,28 @@ index 05569fd..b78c2e1 100644 "(&%s(uid=%s))" % (USER_FILTER, login), ['cn']) if data[0][0]: return data[0][0] +- if force_etab is None: +- etab = self.get_etab(login) +- else: +- etab = force_etab +- return USER_DN % dict(uid=login, _type=self._type, etab=etab) + elif LDAP_MODE == 'openldap': -+ if self.ldap_admin.connexion is None: -+ self.ldap_admin.connect() -+ data = self.ldap_admin.connexion.search_s(SUFFIX, SCOPE_SUBTREE, -+ "(&%s(uid=%s))" % (USER_FILTER, login), ['cn']) -+ if data[0][0]: -+ return data[0][0] - if force_etab is None: - etab = self.get_etab(login) - else: - etab = force_etab - return USER_DN % dict(uid=login, _type=self._type, etab=etab) ++ if force_etab is None: ++ if self.ldap_admin.connexion is None: ++ self.ldap_admin.connect() ++ data = self.ldap_admin.connexion.search_s(SUFFIX, SCOPE_SUBTREE, ++ "(&%s(uid=%s))" % (USER_FILTER, login), ['cn']) ++ if data[0][0]: ++ return data[0][0] ++ else: ++ return USER_DN % dict(uid=login, _type=self._type, etab=force_etab) class Machine(User): """ classe pour les comptes machine """ + pass + diff --git usr/lib/python3/dist-packages/scribe/importation/writer.py usr/lib/python3/dist-packages/scribe/importation/writer.py index 34ce0fb..c61f65b 100644 --- usr/lib/python3/dist-packages/scribe/importation/writer.py