X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-useradd;h=d1c6b79a2d34e4db1459c1234508699907d3b719;hb=2525bf73603cb6487cfcea096e2dc347ad360394;hp=b875470d9ed1807c5a9ba50d9514322bd3025f2b;hpb=c50d88536a4feb3087d1aa802e110250cb2861fc;p=mirror%2Fuserdir-ldap.git diff --git a/ud-useradd b/ud-useradd index b875470..d1c6b79 100755 --- a/ud-useradd +++ b/ud-useradd @@ -1,12 +1,10 @@ #!/usr/bin/env python # -*- mode: python -*- -import string, re, time, ldap, getopt, sys, posix, pwd; +import string, re, time, ldap, getopt, sys, os, pwd; from userdir_ldap import *; from userdir_gpg import *; -AddressSplit = re.compile("(.*).*<([^@]*)@([^>]*)>"); - # This tries to search for a free UID. There are two possible ways to do # this, one is to fetch all the entires and pick the highest, the other # is to randomly guess uids until one is free. This uses the formar. @@ -63,13 +61,10 @@ while (1): # Crack up the email address from the key into a best guess # first/middle/last name -Match = AddressSplit.match(Keys[0][2]); -if Match == None: - (cn,mn,sn,email,account) = ('','','','',''); -else: - (cn,mn,sn) = NameSplit(re.sub('["]','',Match.groups()[0])) - email = Match.groups()[1] + '@' + Match.groups()[2]; - account = Match.groups()[1]; +Addr = SplitEmail(Keys[0][2]); +(cn,mn,sn) = NameSplit(re.sub('["]','',Addr[0])) +email = Addr[1] + '@' + Addr[2]; +account = Addr[1]; privsub = email; gidnumber = str(DefaultGID); @@ -181,13 +176,13 @@ if Res != "yes": # Initialize the substitution Map Subst = {} Subst["__REALNAME__"] = FullName; -Subst["__WHOAMI__"] = pwd.getpwuid(posix.getuid())[0]; +Subst["__WHOAMI__"] = pwd.getpwuid(os.getuid())[0]; Subst["__DATE__"] = time.strftime("%a, %d %b %Y %H:%M:%S +0000",time.gmtime(time.time())); Subst["__LOGIN__"] = account; Subst["__PRIVATE__"] = privsub; Subst["__EMAIL__"] = email; Subst["__PASSWORD__"] = CryptedPass; -Subst["__LISTPASS__"] = string.strip(open(pwd.getpwuid(posix.getuid())[5]+"/.debian-lists_passwd","r").read()); +Subst["__LISTPASS__"] = string.strip(open(pwd.getpwuid(os.getuid())[5]+"/.debian-lists_passwd","r").read()); # Generate the LDAP request Rec = [(ldap.MOD_REPLACE,"uid",account), @@ -241,8 +236,8 @@ if privsub != " ": # Send the Welcome message print "Sending Welcome Email" Reply = TemplateSubst(Subst,open("templates/welcome-message-"+gidnumber,"r").read()); -Child = posix.popen("/usr/sbin/sendmail -t","w"); -#Child = posix.popen("cat","w"); +Child = os.popen("/usr/sbin/sendmail -t","w"); +#Child = os.popen("cat","w"); Child.write(Reply); if Child.close() != None: raise Error, "Sendmail gave a non-zero return code";