=== modified file 'Mailman/Cgi/private.py' --- Mailman/Cgi/private.py 2006-04-04 23:47:14 +0000 +++ Mailman/Cgi/private.py 2009-07-23 21:02:00 +0000 @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2006 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2009 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -131,6 +131,27 @@ if cgidata.has_key('submit'): # This is a re-authorization attempt message = Bold(FontSize('+1', _('Authorization failed.'))).Format() + # Are we processing a password reminder from the login screen? + if cgidata.has_key('login-remind'): + if username: + message = Bold(FontSize('+1', _("""If you are a list member, + your password has been emailed to you."""))).Format() + else: + message = Bold(FontSize('+1', + _('Please enter your email address'))).Format() + if mlist.isMember(username): + mlist.MailUserPassword(username) + elif username: + # Not a member + if mlist.private_roster == 0: + # Public rosters + safeuser = Utils.websafe(username) + message = Bold(FontSize('+1', + _('No such member: %(safeuser)s.'))).Format() + else: + syslog('mischief', + 'Reminder attempt of non-member w/ private rosters: %s', + username) # Output the password form charset = Utils.GetCharSet(mlist.preferred_language) print 'Content-type: text/html; charset=' + charset + '\n\n' === modified file 'templates/en/private.html' --- templates/en/private.html 2005-12-12 00:58:15 +0000 +++ templates/en/private.html 2009-07-23 20:56:09 +0000 @@ -38,6 +38,21 @@ you can explicitly expire the cookie by visiting your member options page and clicking the Log out button. +

+ + + + + + + + + +
+ Password Reminder +
If you don't remember your password, enter your email address + above and click the Remind button and your + password will be emailed to you.