Barry Warsaw pushed to branch master at mailman / Mailman
Commits:
b5c275ba by Aurélien Bompard at 2015-11-21T15:10:41Z
Reorder the default-posting-chain to avoid spam.
Fixes: #163
Adapt unit tests.
- - - - -
e9a522a4 by Barry Warsaw at 2015-11-21T15:11:18Z
Reorder the default posting chain. Closes !60
The default posting chain has been modified so that the header-match
chain and nonmember-moderation rule are processed before "hold" rules
are processed. This allows for better anti-spam defenses and rejecting
non-member posts instead of always holding them for moderator review.
Given by Aurélien Bompard. (Closes #163)
- - - - -
5 changed files:
- src/mailman/chains/builtin.py
- src/mailman/chains/docs/moderation.rst
- src/mailman/core/docs/chains.rst
- src/mailman/docs/NEWS.rst
- src/mailman/runners/docs/incoming.rst
Changes:
=====================================
src/mailman/chains/builtin.py
=====================================
--- a/src/mailman/chains/builtin.py
+++ b/src/mailman/chains/builtin.py
@@ -48,6 +48,10 @@ class BuiltInChain:
('loop', LinkAction.jump, 'discard'),
# Determine whether the member or nonmember has an action shortcut.
('member-moderation', LinkAction.jump, 'moderation'),
+ # Take a detour through the header matching chain.
+ ('truth', LinkAction.detour, 'header-match'),
+ # Check for nonmember moderation.
+ ('nonmember-moderation', LinkAction.jump, 'moderation'),
# Do all of the following before deciding whether to hold the message.
('administrivia', LinkAction.defer, None),
('implicit-dest', LinkAction.defer, None),
@@ -58,11 +62,6 @@ class BuiltInChain:
('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 header matching chain, which we'll create
- # later.
- ('truth', LinkAction.detour, 'header-match'),
- # Check for nonmember moderation.
- ('nonmember-moderation', LinkAction.jump, 'moderation'),
# Finally, the builtin chain jumps to acceptance.
('truth', LinkAction.jump, 'accept'),
)
=====================================
src/mailman/chains/docs/moderation.rst
=====================================
--- a/src/mailman/chains/docs/moderation.rst
+++ b/src/mailman/chains/docs/moderation.rst
@@ -83,6 +83,7 @@ built-in chain. No rules hit and so the message is accepted.
emergency
loop
member-moderation
+ nonmember-moderation
administrivia
implicit-dest
max-recipients
@@ -90,7 +91,6 @@ built-in chain. No rules hit and so the message is accepted.
news-moderation
no-subject
suspicious-header
- nonmember-moderation
However, when Anne's moderation action is set to `hold`, her post is held for
moderator approval.
@@ -207,13 +207,6 @@ moderator approval.
emergency
loop
member-moderation
- administrivia
- implicit-dest
- max-recipients
- max-size
- news-moderation
- no-subject
- suspicious-header
>>> nonmember = mlist.nonmembers.get_member('[email protected]')
>>> nonmember
=====================================
src/mailman/core/docs/chains.rst
=====================================
--- a/src/mailman/core/docs/chains.rst
+++ b/src/mailman/core/docs/chains.rst
@@ -269,8 +269,8 @@ This message will end up in the `pipeline` queue.
Message-ID-Hash: 4CMWUN6BHVCMHMDAOSJZ2Q72G5M32MWB
X-Message-ID-Hash: 4CMWUN6BHVCMHMDAOSJZ2Q72G5M32MWB
X-Mailman-Rule-Misses: approved; emergency; loop; member-moderation;
- administrivia; implicit-dest; max-recipients; max-size;
- news-moderation; no-subject; suspicious-header; nonmember-moderation
+ nonmember-moderation; administrivia; implicit-dest; max-recipients;
+ max-size; news-moderation; no-subject; suspicious-header
<BLANKLINE>
An important message.
<BLANKLINE>
=====================================
src/mailman/docs/NEWS.rst
=====================================
--- a/src/mailman/docs/NEWS.rst
+++ b/src/mailman/docs/NEWS.rst
@@ -77,6 +77,11 @@ Message handling
use a placeholder of the format `$<archiver-name>_url` to insert the
permalink to the message in the named archiver, for any archiver enabled
for the mailing list. Given by Abhilash Raj.
+ * The default posting chain has been modified so that the header-match chain
+ and nonmember-moderation rule are processed before "hold" rules are
+ processed. This allows for better anti-spam defenses and rejecting
+ non-member posts instead of always holding them for moderator review.
+ Given by Aurélien Bompard. (Closes #163)
REST
----
=====================================
src/mailman/runners/docs/incoming.rst
=====================================
--- a/src/mailman/runners/docs/incoming.rst
+++ b/src/mailman/runners/docs/incoming.rst
@@ -129,8 +129,8 @@ Now the message is in the pipeline queue.
X-Message-ID-Hash: 4CMWUN6BHVCMHMDAOSJZ2Q72G5M32MWB
Date: ...
X-Mailman-Rule-Misses: approved; emergency; loop; member-moderation;
- administrivia; implicit-dest; max-recipients; max-size;
- news-moderation; no-subject; suspicious-header; nonmember-moderation
+ nonmember-moderation; administrivia; implicit-dest; max-recipients;
+ max-size; news-moderation; no-subject; suspicious-header
<BLANKLINE>
First post!
<BLANKLINE>
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/9708493d1ad982895f4250c491a04a4f575310cf...e9a522a4a9266c8f044b29c2c3075bd29d90cfc5
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe:
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org