X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-useradd;h=6c2e19d4f43286566b79793b6067a4c1d0ab6f53;hb=59fd74c33d8785f1b41e52745f5305d4bb3fbca5;hp=37ab67534e6469166981c2a597e6b141c96da66b;hpb=6226fe9f5687239a396e17f93f7d7b01fafdf737;p=mirror%2Fuserdir-ldap.git diff --git a/ud-useradd b/ud-useradd index 37ab675..6c2e19d 100755 --- a/ud-useradd +++ b/ud-useradd @@ -27,7 +27,7 @@ AdminUser = pwd.getpwuid(os.getuid())[0]; # Process options ForceMail = 0; OldGPGKeyRings = GPGKeyRings; -GPGKeyRings = []; +userdir_gpg.GPGKeyRings = []; (options, arguments) = getopt.getopt(sys.argv[1:], "u:ma") for (switch, val) in options: if (switch == '-u'): @@ -35,7 +35,7 @@ for (switch, val) in options: elif (switch == '-m'): ForceMail = 1; elif (switch == '-a'): - GPGKeyRings = OldGPGKeyRings; + userdir_gpg.GPGKeyRings = OldGPGKeyRings; print "Accessing LDAP directory as '" + AdminUser + "'"; Password = getpass(AdminUser + "'s password: "); @@ -89,6 +89,11 @@ while len(Keys[0][1]) < 40: if Res == "": break; +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"); + # Try to get a uniq account name Update=0 while 1: @@ -97,6 +102,7 @@ while 1: account = Res; Attrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uid=" + account); if len(Attrs) == 0: + privsub = "%s@debian.org"%(account); break; Res = raw_input("That account already exists, update [no]? "); if Res == "yes": @@ -149,7 +155,6 @@ if Update == 0 or ForceMail == 1: print "Randomizing and encrypting password" Password = GenPass(); Pass = HashPass(Password); - print "PASS: ", Password; # Use GPG to encrypt it, pass the fingerprint to ID it CryptedPass = GPGEncrypt("Your new password is '" + Password + "'\n",\ @@ -191,7 +196,7 @@ Subst["__LOGIN__"] = account; Subst["__PRIVATE__"] = privsub; Subst["__EMAIL__"] = email; Subst["__PASSWORD__"] = CryptedPass; -Subst["__LISTPASS__"] = string.strip(open(pwd.getpwuid(os.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), @@ -239,12 +244,12 @@ if Update == 1 and ForceMail == 0: sys.exit(0); # Do the subscription/welcome message -if privsub != " ": - 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"; +#if privsub != " ": +# 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"