X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap.git;a=blobdiff_plain;f=ud-groupadd;h=d41bfc3872aa0a4cf0907c484d74cfb3f6e86cf8;hp=07f0e9b6a31ecfdcba95c3a3f46cc539fc27d7e0;hb=HEAD;hpb=6597a93ddb54485b12420100c45dc83a42f70d8a diff --git a/ud-groupadd b/ud-groupadd index 07f0e9b..d41bfc3 100755 --- a/ud-groupadd +++ b/ud-groupadd @@ -1,7 +1,26 @@ #!/usr/bin/env python # -*- mode: python -*- -import string, re, time, ldap, getopt, sys, os, pwd; +# Copyright (c) 2000 Jason Gunthorpe +# Copyright (c) 2001-2003 James Troup +# Copyright (c) 2004 Joey Schulze +# Copyright (c) 2008 Peter Palfrader +# +# 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +import re, time, ldap, getopt, sys, os, pwd; from userdir_ldap import *; from userdir_gpg import *; @@ -10,10 +29,12 @@ from userdir_gpg import *; # is to randomly guess uids until one is free. This uses the former. # Regrettably ldap doesn't have an integer attribute comparision function # so we can only cut the search down slightly + +# [JT] This is broken with Woody LDAP and the Schema; for now just +# search through all GIDs. def GetFreeID(l): - HighestUID = 1000; Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL, - "gidNumber>="+str(HighestUID),["gidNumber"]); + "gidNumber=*",["gidNumber"]); HighestUID = 0; for I in Attrs: ID = int(GetAttr(I,"gidNumber","0")); @@ -33,13 +54,7 @@ for (switch, val) in options: if (switch == '-u'): AdminUser = val; -print "Accessing LDAP directory as '" + AdminUser + "'"; -Password = getpass(AdminUser + "'s password: "); - -# Connect to the ldap server -l = ldap.open(LDAPServer); -UserDn = "uid=" + AdminUser + "," + BaseDn; -l.simple_bind_s(UserDn,Password); +l = passwdAccessLDAP(BaseDn, AdminUser) while 1: Group = raw_input("Group name? "); @@ -60,5 +75,4 @@ print "Updating LDAP directory..", sys.stdout.flush(); l.add_s(Dn,[("gid",Group), ("gidNumber",str(Id)), - ("objectclass","top"), - ("objectclass","posixGroup")]); + ("objectClass", GroupObjectClasses)])