]> git.decadent.org.uk Git - dak.git/commitdiff
Implement get_users_from_ldap function
authorLuca Falavigna <dktrkranz@debian.org>
Mon, 12 Aug 2013 12:00:06 +0000 (12:00 +0000)
committerLuca Falavigna <dktrkranz@debian.org>
Mon, 12 Aug 2013 12:00:06 +0000 (12:00 +0000)
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
daklib/utils.py

index 899c16f4677e8b2d29a4523d5bed68496e4e2199..bc524aa9fea6caa9bee29211a07c47f6ec5927ec 100755 (executable)
@@ -1424,6 +1424,30 @@ def get_logins_from_ldap(fingerprint='*'):
 
 ################################################################################
 
+def get_users_from_ldap():
+    """retrieve login and user names from LDAP"""
+
+    LDAPDn = Cnf['Import-LDAP-Fingerprints::LDAPDn']
+    LDAPServer = Cnf['Import-LDAP-Fingerprints::LDAPServer']
+    l = ldap.open(LDAPServer)
+    l.simple_bind_s('','')
+    Attrs = l.search_s(LDAPDn, ldap.SCOPE_ONELEVEL,
+                       '(uid=*)', ['uid', 'cn', 'mn', 'sn'])
+    users = {}
+    for elem in Attrs:
+        elem = elem[1]
+        name = []
+        for k in ('cn', 'mn', 'sn'):
+            try:
+                if elem[k][0] != '-':
+                    name.append(elem[k][0])
+            except KeyError:
+                pass
+        users[' '.join(name)] = elem['uid'][0]
+    return users
+
+################################################################################
+
 def clean_symlink (src, dest, root):
     """
     Relativize an absolute symlink from 'src' -> 'dest' relative to 'root'.