From 4e967acf9b45a6a6d24bc3d84c6d40f6dcffc1e8 Mon Sep 17 00:00:00 2001 From: Mark Sapiro Date: Sun, 6 Dec 2015 12:00:29 -0800 Subject: Submitting the user options form for a user who was asynchronously unsubscribed would throw an uncaught NotAMemberError. --- Mailman/Cgi/options.py | 8 ++++++++ NEWS | 3 +++ 2 files changed, 11 insertions(+) diff --git a/Mailman/Cgi/options.py b/Mailman/Cgi/options.py index 7b2c70b5..cdc2bef3 100644 --- a/Mailman/Cgi/options.py +++ b/Mailman/Cgi/options.py @@ -297,6 +297,14 @@ def main(): # options. The first set of checks does not require the list to be # locked. + # However, if a form is submitted for a user who has been asynchronously + # unsubscribed, uncaught NotAMemberError exceptions can be thrown. + + if not mlist.isMember(user): + loginpage(mlist, doc, user, language) + print doc.Format() + return + if cgidata.has_key('logout'): print mlist.ZapCookie(mm_cfg.AuthUser, user) loginpage(mlist, doc, user, language) diff --git a/NEWS b/NEWS index 13461158..94014633 100755 --- a/NEWS +++ b/NEWS @@ -22,6 +22,9 @@ Here is a history of user visible changes to Mailman. Bug fixes and other patches + - Submitting the user options form for a user who was asynchronously + unsubscribed would throw an uncaught NotAMemberError. (LP: #1523273) + - It was possible under some circumstances for a message to be shunted after a handler rejected or discarded it, and the handler would be skipped upon unshunting and the message accepted. (LP: #1519062) -- cgit v1.2.3