Add change_user_details

This commit is contained in:
PCoder 2019-02-24 17:25:13 +01:00
commit a909a9b5c5
2 changed files with 40 additions and 10 deletions

View file

@ -142,6 +142,33 @@ class LdapManager:
conn.unbind()
return return_val
def change_user_details(self, uid, details):
"""
Updates the user details as per given values in kwargs of the user
identified by user_dn.
Assumes that all attributes passed in kwargs are valid.
:param uid: str The uid that identifies the user
:param details: dict A dictionary containing the new values
:return: True if user details were updated successfully False otherwise
"""
conn = self.get_admin_conn()
details_dict = {k: (ldap3.MODIFY_REPLACE, [v.encode("utf-8")]) for k, v in details.items()}
try:
return_val = conn.modify(
("uid={uid}," + settings.LDAP_CUSTOMER_DN).format(uid=uid),
details_dict
)
msg = "success"
except Exception as ex:
msg = str(ex)
logger.error("Exception: " + msg)
return_val = False
finally:
conn.unbind()
return return_val, msg
def check_user_exists(self, uid, is_customer=True, search_filter="",
attributes=None):
"""