summaryrefslogtreecommitdiff
path: root/Mailman/chains/builtin.py
diff options
context:
space:
mode:
authorBarry Warsaw2008-02-27 01:26:18 -0500
committerBarry Warsaw2008-02-27 01:26:18 -0500
commita1c73f6c305c7f74987d99855ba59d8fa823c253 (patch)
tree65696889450862357c9e05c8e9a589f1bdc074ac /Mailman/chains/builtin.py
parent3f31f8cce369529d177cfb5a7c66346ec1e12130 (diff)
downloadmailman-a1c73f6c305c7f74987d99855ba59d8fa823c253.tar.gz
mailman-a1c73f6c305c7f74987d99855ba59d8fa823c253.tar.zst
mailman-a1c73f6c305c7f74987d99855ba59d8fa823c253.zip
Diffstat (limited to 'Mailman/chains/builtin.py')
-rw-r--r--Mailman/chains/builtin.py84
1 files changed, 0 insertions, 84 deletions
diff --git a/Mailman/chains/builtin.py b/Mailman/chains/builtin.py
deleted file mode 100644
index d702b48b9..000000000
--- a/Mailman/chains/builtin.py
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright (C) 2007-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
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# 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.
-
-"""The default built-in starting chain."""
-
-__all__ = ['BuiltInChain']
-__metaclass__ = type
-
-
-import logging
-
-from zope.interface import implements
-
-from Mailman.chains.base import Link
-from Mailman.configuration import config
-from Mailman.i18n import _
-from Mailman.interfaces import IChain, LinkAction
-
-
-log = logging.getLogger('mailman.vette')
-
-
-
-class BuiltInChain:
- """Default built-in chain."""
-
- implements(IChain)
-
- name = 'built-in'
- description = _('The built-in moderation chain.')
-
- _link_descriptions = (
- ('approved', LinkAction.jump, 'accept'),
- ('emergency', LinkAction.jump, 'hold'),
- ('loop', LinkAction.jump, 'discard'),
- # Do all of the following before deciding whether to hold the message
- # for moderation.
- ('administrivia', LinkAction.defer, None),
- ('implicit-dest', LinkAction.defer, None),
- ('max-recipients', LinkAction.defer, None),
- ('max-size', LinkAction.defer, None),
- ('news-moderation', LinkAction.defer, None),
- ('no-subject', LinkAction.defer, None),
- ('suspicious-header', LinkAction.defer, None),
- # Now if any of the above hit, jump to the hold chain.
- ('any', LinkAction.jump, 'hold'),
- # Take a detour through the self header matching chain, which we'll
- # create later.
- ('truth', LinkAction.detour, 'header-match'),
- # Finally, the builtin chain selfs to acceptance.
- ('truth', LinkAction.jump, 'accept'),
- )
-
- def __init__(self):
- self._cached_links = None
-
- def get_links(self, mlist, msg, msgdata):
- """See `IChain`."""
- if self._cached_links is None:
- self._cached_links = links = []
- for rule_name, action, chain_name in self._link_descriptions:
- # Get the named rule.
- rule = config.rules[rule_name]
- # Get the chain, if one is defined.
- if chain_name is None:
- chain = None
- else:
- chain = config.chains[chain_name]
- links.append(Link(rule, action, chain))
- return iter(self._cached_links)