X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-useradd;h=cadb7981796b99e3e000ba7c103957523eb26c4c;hb=9d6a5c2891ae810fd92eee96a4b22d3679328b2f;hp=d1c6b79a2d34e4db1459c1234508699907d3b719;hpb=2525bf73603cb6487cfcea096e2dc347ad360394;p=mirror%2Fuserdir-ldap.git diff --git a/ud-useradd b/ud-useradd index d1c6b79..cadb798 100755 --- a/ud-useradd +++ b/ud-useradd @@ -12,7 +12,8 @@ from userdir_gpg import *; # so we can only cut the search down slightly def GetFreeID(l): HighestUID = 1400; - Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uidnumber>="+str(HighestUID),["uidnumber"]); + Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL, + "uidnumber>="+str(HighestUID),["uidnumber"]); HighestUID = 0; for I in Attrs: ID = int(GetAttr(I,"uidnumber","0")); @@ -21,13 +22,17 @@ def GetFreeID(l): return HighestUID + 1; # Main starts here +AdminUser = pwd.getpwuid(os.getuid())[0]; # Process options -(options, arguments) = getopt.getopt(sys.argv[1:], "u:") +ForceMail = 0; +(options, arguments) = getopt.getopt(sys.argv[1:], "u:m") for (switch, val) in options: if (switch == '-u'): - AdminUser = val - + AdminUser = val; + elif (switch == '-m'): + ForceMail = 1; + print "Accessing LDAP directory as '" + AdminUser + "'"; Password = getpass(AdminUser + "'s password: "); @@ -133,7 +138,7 @@ if uidnumber == 0: uidnumber = GetFreeID(l); # Generate a random password -if Update == 0: +if Update == 0 or ForceMail == 1: Password = raw_input("User's Password (Enter for random)? "); if Password == "": @@ -225,17 +230,21 @@ l.modify_s(Dn,Rec); print; # Abort email sends for an update operation -if Update == 1: +if Update == 1 and ForceMail == 0: print "Account is not new, Not sending mails" sys.exit(0); # Do the subscription/welcome message if privsub != " ": - print TemplateSubst(Subst,open("templates/list-subscribe","r").read()); - + Sub = TemplateSubst(Subst,open(TemplatesDir+"/list-subscribe","r").read()); + Child = os.popen("/usr/sbin/sendmail -t","w"); + Child.write(Sub); + if Child.close() != None: + raise Error, "Sendmail gave a non-zero return code"; + # Send the Welcome message print "Sending Welcome Email" -Reply = TemplateSubst(Subst,open("templates/welcome-message-"+gidnumber,"r").read()); +Reply = TemplateSubst(Subst,open(TemplatesDir+"/welcome-message-"+gidnumber,"r").read()); Child = os.popen("/usr/sbin/sendmail -t","w"); #Child = os.popen("cat","w"); Child.write(Reply);