From 721cce05aca20c759d55a660d0c15434e7e4037a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauri=20V=C3=B5sandi?= Date: Thu, 13 Apr 2017 21:03:26 +0000 Subject: [PATCH] Don't enforce dependency on ldap module --- certidude/user.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/certidude/user.py b/certidude/user.py index 9dbfa93..e33f2da 100644 --- a/certidude/user.py +++ b/certidude/user.py @@ -1,8 +1,6 @@ import click import grp -import ldap -import ldap.sasl import os import pwd from certidude import const, config @@ -65,6 +63,9 @@ class PosixUserManager(object): class DirectoryConnection(object): def __enter__(self): + import ldap + import ldap.sasl + # TODO: Implement simple bind if not os.path.exists(config.LDAP_GSSAPI_CRED_CACHE): raise ValueError("Ticket cache at %s not initialized, unable to " @@ -87,8 +88,7 @@ class ActiveDirectoryUserManager(object): with DirectoryConnection() as conn: ft = config.LDAP_USER_FILTER % username attribs = "cn", "givenName", "sn", "mail", "userPrincipalName" - r = conn.search_s(config.LDAP_BASE, ldap.SCOPE_SUBTREE, - ft.encode("utf-8"), attribs) + r = conn.search_s(config.LDAP_BASE, 2, ft.encode("utf-8"), attribs) for dn, entry in r: if not dn: continue @@ -110,8 +110,7 @@ class ActiveDirectoryUserManager(object): def filter(self, ft): with DirectoryConnection() as conn: attribs = "givenName", "surname", "samaccountname", "cn", "mail", "userPrincipalName" - r = conn.search_s(config.LDAP_BASE, ldap.SCOPE_SUBTREE, - ft.encode("utf-8"), attribs) + r = conn.search_s(config.LDAP_BASE, 2, ft.encode("utf-8"), attribs) for dn,entry in r: if not dn: continue @@ -145,8 +144,7 @@ class ActiveDirectoryUserManager(object): def is_admin(self, user): with DirectoryConnection() as conn: ft = config.LDAP_ADMIN_FILTER % user.name - r = conn.search_s(config.LDAP_BASE, ldap.SCOPE_SUBTREE, - ft.encode("utf-8"), ["cn"]) + r = conn.search_s(config.LDAP_BASE, 2, ft.encode("utf-8"), ["cn"]) for dn, entry in r: if not dn: continue