aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Mailman/Cgi/options.py11
-rw-r--r--Mailman/Handlers/CookHeaders.py5
-rw-r--r--NEWS8
3 files changed, 18 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
diff --git a/NEWS b/NEWS
index 6684ddf2..5c7d0b2e 100644
--- a/NEWS
+++ b/NEWS
@@ -162,6 +162,14 @@ Internationalization
available_languages if it is other than the server's default language
(1906368).
+ - Changed the first URL in the RFC 2369 List-Unsubscribe: header to go
+ to the options login page instead of the listinfo page.
+
+ - Changed the options login page to not issue the "No address given" error
+ when coming from the List-Unsubscribe and other direct links. Also
+ changed to remember the user's language selection when redisplaying the
+ page following an error.
+
Miscellaneous
- Brad Knowles' mailman daily status report script updated to 0.0.17.