X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=userdir_ldap.py;h=c2b864d949f3a31e13a685e5451d567bc325f505;hb=0681e6e93d9d21b85a67c4a4b81a9bd3dde848a5;hp=f60b715b858476d8d5642dec55f00dd1c8d392a8;hpb=f4a76efad948fdf652f86095b43e11caf746352f;p=mirror%2Fuserdir-ldap.git diff --git a/userdir_ldap.py b/userdir_ldap.py index f60b715..c2b864d 100644 --- a/userdir_ldap.py +++ b/userdir_ldap.py @@ -1,6 +1,6 @@ # Copyright (c) 1999-2000 Jason Gunthorpe # Copyright (c) 2001-2003 Ryan Murray -# Copyright (c) 2004 Joey Schulze +# Copyright (c) 2004-2005 Joey Schulze # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Some routines and configuration that are used by the ldap progams -import termios, re, string, imp, ldap, sys, whrandom, crypt, rfc822; +import termios, re, string, imp, ldap, sys, crypt, rfc822; import userdir_gpg try: @@ -48,7 +48,11 @@ userdir_gpg.SetKeyrings(string.split(ConfModule.keyrings,":")); LastNamesPre = {"van": None, "von": None, "le": None, "de": None, "di": None}; # This is a list of common groups on Debian hosts -DebianGroups = {"Debian": 800, "guest": 60000} +DebianGroups = { + "Debian": 800, + "guest": 60000, + "nogroup": 65534 + } # SSH Key splitting. The result is: # (options,size,modulous,exponent,comment) @@ -407,9 +411,18 @@ def GetUID(l,Name,UnknownMap = {}): return (None,None); -def Group2GID(name): - """Returns the numerical id of a common group""" +def Group2GID(l, name): + """ + Returns the numerical id of a common group + on error returns -1 + """ for g in DebianGroups.keys(): if name == g: return DebianGroups[g] - return name + + filter = "(gid=%s)" % name + res = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,filter,["gidNumber"]); + if res: + return int(GetAttr(res[0], "gidNumber")) + + return -1