* ud-useradd: Avoid a TypeError exception when constructing the template
[mirror/userdir-ldap.git] / userdir_ldap.py
index a048299..1b4299c 100644 (file)
@@ -54,6 +54,11 @@ DebianGroups = {
    "nogroup": 65534
    }
 
+# ObjectClasses for different object types
+UserObjectClasses = ("top", "inetOrgPerson", "debianAccount", "shadowAccount", "debianDeveloper")
+RoleObjectClasses = ("top", "debianAccount", "shadowAccount", "debianRoleAccount")
+GroupObjectClasses = ("top", "debianGroup")
+
 # SSH Key splitting. The result is:
 # (options,size,modulous,exponent,comment)
 SSHAuthSplit = re.compile('^(.* )?(\d+) (\d+) (\d+) ?(.+)$');
@@ -411,7 +416,7 @@ def GetUID(l,Name,UnknownMap = {}):
 
    return (None,None);
 
-def Group2GID(name):
+def Group2GID(l, name):
    """
    Returns the numerical id of a common group
    on error returns -1
@@ -419,4 +424,10 @@ def Group2GID(name):
    for g in DebianGroups.keys():
       if name == g:
          return DebianGroups[g]
+
+   filter = "(gid=%s)" % name
+   res = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,filter,["gidNumber"]);
+   if res:
+      return int(GetAttr(res[0], "gidNumber"))
+
    return -1