
I've been poking 'round 1.0b5.. I've got stuff that I'll be
working on, but first I'd thought I'd submit this. It's just a really simple little mnemnonic password generator. Ive been using it fer months on my much-hacked up 1.0b1 install (which should be retiering soon), and it's just a little niceity. Basically, what ye do, is, if ye install the following module, and apply this patch, afterward, instead of your list subscribers getting passwords like 'lPg_' when mailman assigns a password (like during a mass subscribe, or email sub w/ no password supplied), they get passwords like 'cold-blue-tiger', or similar.
----Begin PassGen.py ----- import string, whrandom # this generates (hopefully) easy to remember random passwords -ddm
passphrase = [ [ "hot", "cold" , "warm" , "tall", "short", "wide" , "thin", "heavy", "light", "fast" ,"slow", "wet", "dry", "furry", "scaled", "smart", "dumb", "happy", "sad", "sly", "bouncy", "sleepy", "early" ,"late", "wise" ], [ "red", "orange", "yellow", "green", "blue", "violet" , "white", "black", "grey" , "brown", "tan", "silver", "gold", "aqua", "pink" , "navy", "azure","plaid", "paisley", "beige", "clear", "copper" ], [ "dragon", "gryphon", "centaur", "faun", "wolf", "fox" ,"bear", "eagle", "lizard", "newt", "fish", "snake", "horse", "unicorn", "deer", "dog", "cat", "lion", "puma", "rat", "mouse", "racoon", "badger","gopher", "seal", "whale", "mule", "walrus", "otter","turtle", "zebra", "tiger", "dingo" ,"koala", "kangaroo", "dinosaur", "pegasus", "bigfoot", "beaver", "possum", "skunk", "hawk", "orca", "panda", "raven" ] ]
rgen= whrandom.whrandom()
def RandomPhrase(): """Generates random, AOL-style passphrases. """ p=[] for each in passphrase: p.append(rgen.choice(each)) return string.join(p,"-")
----End PassGen.py -----
----Begin patch -------- diff -c -r /tmp/mailman-1.0b5/Mailman/Cgi/admin.py Mailman/Cgi/admin.py *** Mailman/Cgi/admin.py Mon Jul 27 17:48:31 1998 --- Mailman/Cgi/admin.py Mon Aug 3 06:31:12 1998
*** 27,32 **** --- 27,34 ---- import paths # path hacking from Mailman import Utils, MailList, Errors, MailCommandHandler from Mailman import Cookie
- from Mailman import PassGen
- from Mailman.htmlformat import * from Mailman.Crypt import crypt from Mailman import mm_cfg
*** 711,718 **** if not lst.nondigestable: digest = 1 try: ! lst.ApprovedAddMember(new_name, (Utils.GetRandomSeed() + ! Utils.GetRandomSeed()), digest) subscribe_success.append(new_name) except Errors.MMAlreadyAMember: subscribe_errors.append((new_name, 'Already a member')) --- 713,719 ---- if not lst.nondigestable: digest = 1 try: ! lst.ApprovedAddMember(new_name, PassGen.RandomPhrase(), digest) subscribe_success.append(new_name) except Errors.MMAlreadyAMember: subscribe_errors.append((new_name, 'Already a member'))
diff -c -r /tmp/mailman-1.0b5/Mailman/MailCommandHandler.py Mailman/MailCommandHandler.py *** Mailman/MailCommandHandler.py Mon Jul 27 17:48:31 1998 --- Mailman/MailCommandHandler.py Mon Aug 3 06:51:54 1998
*** 29,35 **** import mm_cfg import Utils import Pending !
option_descs = { 'digest' : 'receive mail from the list bundled together instead of ' --- 29,35 ---- import mm_cfg import Utils import Pending ! import PassGen
option_descs = { 'digest' : 'receive mail from the list bundled together instead of '
*** 413,420 **** address = "" done_digest = 0 if not len(args): ! password = "%s%s" % (Utils.GetRandomSeed(), ! Utils.GetRandomSeed()) elif len(args) > 3: self.AddError("Usage: subscribe [password] " "[digest|nodigest] [address=<email-address>]") --- 413,419 ---- address = "" done_digest = 0 if not len(args): ! password = PassGen.RandomPhrase() elif len(args) > 3: self.AddError("Usage: subscribe [password] " "[digest|nodigest] [address=<email-address>]")
*** 437,444 **** "[address=<email-address>]") return if not password: ! password = "%s%s" % (Utils.GetRandomSeed(), ! Utils.GetRandomSeed()) if not address: pending_addr = mail.GetSender() else: --- 436,442 ---- "[address=<email-address>]") return if not password: ! password = PassGen.RandomPhrase() if not address: pending_addr = mail.GetSender() else:
----End patch --------
-The Dragon De Monsyne
participants (1)
-
The Dragon De Monsyne