diff options
author | Mark Sapiro <mark@msapiro.net> | 2008-03-06 12:34:12 -0800 |
---|---|---|
committer | Mark Sapiro <mark@msapiro.net> | 2008-03-06 12:34:12 -0800 |
commit | 7858eb837982174b11aec648f3ba4ca0f1ab6c6a (patch) | |
tree | 783c50bfa2b4302bfc9625274b8cf2a62b915586 /Mailman | |
parent | dd3ada936da9f0f24f41f113902d35b20e895086 (diff) | |
download | mailman2-7858eb837982174b11aec648f3ba4ca0f1ab6c6a.tar.gz mailman2-7858eb837982174b11aec648f3ba4ca0f1ab6c6a.tar.xz mailman2-7858eb837982174b11aec648f3ba4ca0f1ab6c6a.zip |
CookHeaders.py - Changed the first URL in the RFC 2369 List-Unsubscribe:
header to go to the options login page instead of the
listinfo page.
options.py - Changed to only issue the "No address given" error if coming
from the page itself so we don't get the error when linking
from another page or the List-Unsubscribe: header.
- Changed to remember the user's language selection when
redisplaying the page after an error.
Diffstat (limited to '')
-rw-r--r-- | Mailman/Cgi/options.py | 11 | ||||
-rw-r--r-- | Mailman/Handlers/CookHeaders.py | 5 |
2 files changed, 10 insertions, 6 deletions
diff --git a/Mailman/Cgi/options.py b/Mailman/Cgi/options.py index ab19e4e2..67700028 100644 --- a/Mailman/Cgi/options.py +++ b/Mailman/Cgi/options.py @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2007 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2008 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 @@ -99,9 +99,11 @@ def main(): user = cgidata.getvalue('email') if not user: # If we're coming from the listinfo page and we left the email - # address field blank, it's not an error. listinfo.html names the - # button UserOptions; we can use that as the descriminator. - if not cgidata.getvalue('UserOptions'): + # address field blank, it's not an error. Likewise if we're + # coming from anywhere else. Only issue the error if we came + # via one of our buttons. + if (cgidata.getvalue('login') or cgidata.getvalue('login-unsub') + or cgidata.getvalue('login-remind')): doc.addError(_('No address given')) loginpage(mlist, doc, None, language) print doc.Format() @@ -861,6 +863,7 @@ def loginpage(mlist, doc, user, lang): # Preamble # Set up the login page form = Form(actionurl) + form.AddItem(Hidden('language', lang)) table = Table(width='100%', border=0, cellspacing=4, cellpadding=5) table.AddRow([_("""In order to change your membership option, you must first log in by giving your %(extra)smembership password in the section diff --git a/Mailman/Handlers/CookHeaders.py b/Mailman/Handlers/CookHeaders.py index ea51abf1..671922ab 100644 --- a/Mailman/Handlers/CookHeaders.py +++ b/Mailman/Handlers/CookHeaders.py @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2005 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2008 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 @@ -199,13 +199,14 @@ def process(mlist, msg, msgdata): requestaddr = mlist.GetRequestEmail() subfieldfmt = '<%s>, <mailto:%s?subject=%ssubscribe>' listinfo = mlist.GetScriptURL('listinfo', absolute=1) + useropts = mlist.GetScriptURL('options', absolute=1) headers = {} if msgdata.get('reduced_list_headers'): headers['X-List-Administrivia'] = 'yes' else: headers.update({ 'List-Help' : '<mailto:%s?subject=help>' % requestaddr, - 'List-Unsubscribe': subfieldfmt % (listinfo, requestaddr, 'un'), + 'List-Unsubscribe': subfieldfmt % (useropts, requestaddr, 'un'), 'List-Subscribe' : subfieldfmt % (listinfo, requestaddr, ''), }) # List-Post: is controlled by a separate attribute |