X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=userdir_ldap.py;h=1b4299c695f17ecdd234aaf27a756b1b808d4e8a;hb=efc48e4f01ce7f402a4c793727bf776bcf083c05;hp=a0482993b1d956664a7604928fd0de37001272e4;hpb=685de8c801ade6d02e7c5033bf474036ffa57dbb;p=mirror%2Fuserdir-ldap.git diff --git a/userdir_ldap.py b/userdir_ldap.py index a048299..1b4299c 100644 --- a/userdir_ldap.py +++ b/userdir_ldap.py @@ -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