From 6c3f01003faef9895b50b9f059827e5e6239067e Mon Sep 17 00:00:00 2001
From: meow <ahmedbilal96@gmail.com>
Date: Wed, 18 Dec 2019 15:19:47 +0500
Subject: [PATCH] remove search_base + fixed issue pointed out by mravi that
 results in different username in db and ldap

---
 dynamicweb/settings/base.py | 1 -
 membership/models.py        | 8 ++------
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py
index fcd921a8..6d73edde 100644
--- a/dynamicweb/settings/base.py
+++ b/dynamicweb/settings/base.py
@@ -737,7 +737,6 @@ LDAP_MAX_UID_FILE_PATH = os.environ.get('LDAP_MAX_UID_FILE_PATH',
 LDAP_DEFAULT_START_UID = int(env('LDAP_DEFAULT_START_UID'))
 
 # Search union over OUs
-search_base = env('LDAPSEARCH').split()
 AUTH_LDAP_START_TLS = bool(os.environ.get('LDAP_USE_TLS', False))
 
 ENTIRE_SEARCH_BASE = env("ENTIRE_SEARCH_BASE")
diff --git a/membership/models.py b/membership/models.py
index 3a3f65d2..0e60c252 100644
--- a/membership/models.py
+++ b/membership/models.py
@@ -100,6 +100,7 @@ def assign_username(user):
                 except IntegrityError:
                     # If username exists in database then come up with a new username
                     user.username = user.username + str(random.randint(0, 2 ** 10))
+                    exist = True
 
 
 def validate_name(value):
@@ -221,12 +222,7 @@ class CustomUser(AbstractBaseUser, PermissionsMixin):
         assign_username(self)
         ldap_manager = LdapManager()
         try:
-            user_exists_in_ldap, entries = ldap_manager.check_user_exists(
-                uid=self.username,
-                attributes=['uid', 'givenName', 'sn', 'mail', 'userPassword'],
-                search_base=settings.ENTIRE_SEARCH_BASE,
-                search_attr='uid'
-            )
+            user_exists_in_ldap, entries = ldap_manager.check_user_exists(self.username)
         except Exception:
             logger.exception("Exception occur while searching for user in LDAP")
         else: