aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman
diff options
context:
space:
mode:
authorbwarsaw <>2004-02-17 19:18:06 +0000
committerbwarsaw <>2004-02-17 19:18:06 +0000
commit648fc8b948eeca744e76b33b519687cc638cd96a (patch)
treec55a485702956c9e17e6e7faa9d80d01ab6fbe0f /Mailman
parent6e2c96f1163657bc886499035b57e694995605ed (diff)
downloadmailman2-648fc8b948eeca744e76b33b519687cc638cd96a.tar.gz
mailman2-648fc8b948eeca744e76b33b519687cc638cd96a.tar.xz
mailman2-648fc8b948eeca744e76b33b519687cc638cd96a.zip
main(): It's possible that if you're logged in as the list admin, you can get
to the end of the function trying to present the options page for a non-existant user, causing a traceback. At the last second, do one more isMember() check and return the loginpage if the address isn't a member of the list.
Diffstat (limited to 'Mailman')
-rw-r--r--Mailman/Cgi/options.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/Mailman/Cgi/options.py b/Mailman/Cgi/options.py
index b8a589d6..447dc38c 100644
--- a/Mailman/Cgi/options.py
+++ b/Mailman/Cgi/options.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2003 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2004 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
@@ -219,7 +219,6 @@ def main():
# Authenticate, possibly using the password supplied in the login page
password = cgidata.getvalue('password', '').strip()
-
if not mlist.WebAuthenticate((mm_cfg.AuthUser,
mm_cfg.AuthListAdmin,
mm_cfg.AuthSiteAdmin),
@@ -629,7 +628,10 @@ address. Upon confirmation, any other mailing list containing the address
print doc.Format()
return
- options_page(mlist, doc, user, cpuser, userlang)
+ if mlist.isMember(user):
+ options_page(mlist, doc, user, cpuser, userlang)
+ else:
+ loginpage(mlist, doc, user, userlang)
print doc.Format()