X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-useradd;h=415b58026d0f31fbd845d6f9fa837a0a68fabf4f;hb=9e1e7b0639b1265bf39acd330122f40123451c56;hp=7d0730b5071f4e221c9550f1fa5e0570e44c1bde;hpb=3abfc105c07030f61283e6ce17089b1071487f10;p=mirror%2Fuserdir-ldap.git diff --git a/ud-useradd b/ud-useradd index 7d0730b..415b580 100755 --- a/ud-useradd +++ b/ud-useradd @@ -1,6 +1,24 @@ #!/usr/bin/env python # -*- mode: python -*- +# Copyright (c) 1999-2000 Jason Gunthorpe +# Copyright (c) 2001-2003 James Troup +# Copyright (c) 2004 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 +# 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 string, re, time, ldap, getopt, sys, os, pwd; from userdir_ldap import *; from userdir_gpg import *; @@ -101,17 +119,19 @@ while len(Keys[0][1]) < 40: if Res == "": break; +Update = 0 Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"keyFingerPrint=" + Keys[0][1]); if len(Attrs) != 0: print "*** This key already belongs to",GetAttr(Attrs[0],"uid"); account = GetAttr(Attrs[0],"uid"); + Update = 1 # Try to get a uniq account name -Update=0 while 1: - Res = raw_input("Login account [" + account + "]? "); - if Res != "": - account = Res; + if Update == 0: + Res = raw_input("Login account [" + account + "]? "); + if Res != "": + account = Res; Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uid=" + account); if len(Attrs) == 0: privsub = "%s@debian.org"%(account); @@ -130,6 +150,8 @@ while 1: if privsub == None or privsub == "": privsub = " "; break; + else: + sys.exit(1) # Prompt for the first/last name and email address Res = raw_input("First name [" + cn + "]? "); @@ -153,7 +175,7 @@ if Res != "": # GID Res = raw_input("Group ID Number [" + gidNumber + "]? "); if Res != "": - gidNumber = Res; + gidNumber = Group2GID(Res); # UID if uidNumber == 0: @@ -231,10 +253,11 @@ if Update == 0: ("shadowMin","0"), ("shadowMax","99999"), ("shadowWarning","7"), - ("privateSub",privsub), ("userPassword","{crypt}"+Pass)]; if mn: Details.append(("mn",mn)); + if privsub != " ": + Details.append(("privateSub",privsub)) l.add_s(Dn,Details); else: # Modification