From f6c4e6ff0b471008c7731887b4370342a28f9165 Mon Sep 17 00:00:00 2001 From: Peter Stanko <peter.stanko0@gmail.com> Date: Tue, 26 Jun 2018 18:30:18 +0200 Subject: [PATCH] Fixed uco extraction in ldap --- portal/service/users.py | 3 ++- portal/tools/ldap_client.py | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/portal/service/users.py b/portal/service/users.py index a17e1f6..9c80886 100644 --- a/portal/service/users.py +++ b/portal/service/users.py @@ -50,10 +50,11 @@ def ldap_get_uco_for_user(username: str) -> int: """ user_dict = ldap_wrapper.search_dict(f"uid={username},ou=People") + log.debug(f"[LDAP] User ({username}): {user_dict}") if not user_dict: return 0 desc = user_dict[0]['description'] - uco = [str(u) for u in desc if str(u).startswith('UCO=')] + uco = [u.decode('utf-8') for u in desc if u.decode('utf-8').startswith('UCO=')] if not uco: return 0 return int(uco[0][4:]) diff --git a/portal/tools/ldap_client.py b/portal/tools/ldap_client.py index c69d561..126d7d3 100644 --- a/portal/tools/ldap_client.py +++ b/portal/tools/ldap_client.py @@ -52,12 +52,14 @@ class LDAPWrapper(object): Returns(LDAPObject): LDAP Object instance """ if not self._ldap_client and self.is_enabled: - self._ldap_client = ldap.initialize(self.ldap_url) + self._ldap_client = ldap.initialize(self.ldap_url, bytes_mode=False) return self._ldap_client def search(self, selector: str): selector = selector + self.selector_base - return self.ldap.search_s(selector, ldap.SCOPE_SUBTREE, "objectclass=*") + result = self.ldap.search_s(selector, ldap.SCOPE_SUBTREE, "objectclass=*") + log.debug(f"[LDAP] Search ({selector}): {result}") + return result def search_dict(self, *args, **kwargs): l_res = self.search(*args, **kwargs) -- GitLab