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