aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman/Handlers/Hold.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/Handlers/Hold.py')
-rw-r--r--Mailman/Handlers/Hold.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/Mailman/Handlers/Hold.py b/Mailman/Handlers/Hold.py
index fdfaa09d..f6008d45 100644
--- a/Mailman/Handlers/Hold.py
+++ b/Mailman/Handlers/Hold.py
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2005 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2006 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
@@ -12,7 +12,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
"""Determine whether this message should be held for approval.
@@ -196,7 +197,12 @@ def hold_for_approval(mlist, msg, msgdata, exc):
# BAW: This should really be tied into the email confirmation system so
# that the message can be approved or denied via email as well as the
# web.
- if type(exc) is ClassType:
+ #
+ # XXX We use the weird type(type) construct below because in Python 2.1,
+ # type is a function not a type and so can't be used as the second
+ # argument in isinstance(). However, in Python 2.5, exceptions are
+ # new-style classes and so are not of ClassType.
+ if isinstance(exc, ClassType) or isinstance(exc, type(type)):
# Go ahead and instantiate it now.
exc = exc()
listname = mlist.real_name