------------------------------------------------------------
revno: 1099
committer: Mark Sapiro <[email protected]>
branch nick: 2.2
timestamp: Sat 2010-03-06 13:04:54 -0800
message:
  Fixed a bug in the admindb interface that could apply a moderator
  action to a message not displayed.  Bug #533468.
modified:
  Mailman/Cgi/admindb.py
  NEWS


--
lp:mailman/2.2
https://code.launchpad.net/~mailman-coders/mailman/2.2

Your team Mailman Checkins is subscribed to branch lp:mailman/2.2.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mailman-coders/mailman/2.2/+edit-subscription.
=== modified file 'Mailman/Cgi/admindb.py'
--- Mailman/Cgi/admindb.py	2009-12-04 22:23:14 +0000
+++ Mailman/Cgi/admindb.py	2010-03-06 21:04:54 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2009 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2010 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
@@ -507,6 +507,7 @@
             if when:
                 t.AddRow(['&nbsp;', Bold(_('Received:')),
                           time.ctime(when)])
+            t.AddRow([InputObj(qsender, 'hidden', str(id), False).Format()])
             counter += 1
             right.AddRow([t])
         stable.AddRow([left, right])
@@ -684,9 +685,13 @@
                        'senderclearmodp-', 'senderbanp-'):
             if k.startswith(prefix):
                 action = k[:len(prefix)-1]
-                sender = unquote_plus(k[len(prefix):])
+                qsender = k[len(prefix):]
+                sender = unquote_plus(qsender)
                 value = cgidata.getvalue(k)
                 senderactions.setdefault(sender, {})[action] = value
+                for id in cgidata.getlist(qsender):
+                    senderactions[sender].setdefault('message_ids',
+                                                     []).append(int(id))
     # discard-all-defers
     try:
         discardalldefersp = cgidata.getvalue('discardalldefersp', 0)
@@ -708,6 +713,9 @@
             forwardaddr = actions.get('senderforwardto', '')
             bysender = helds_by_sender(mlist)
             for id in bysender.get(sender, []):
+                if id not in senderactions[sender]['message_ids']:
+                    # It arrived after the page was displayed. Skip it.
+                    continue
                 try:
                     msgdata = mlist.GetRecord(id)[5]
                     comment = msgdata.get('rejection_notice',

=== modified file 'NEWS'
--- NEWS	2010-03-05 21:11:55 +0000
+++ NEWS	2010-03-06 21:04:54 +0000
@@ -83,6 +83,9 @@
 
   Bug Fixes and other patches
 
+    - Fixed a bug in the admindb interface that could apply a moderator
+      action to a message not displayed.  Bug #533468.
+
     - Added a traceback to the log message produced when processing the
       digest.mbox throws an exception.
 

_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to