aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman
diff options
context:
space:
mode:
authorjimpop@template.hostname <>2015-11-04 22:49:05 +0000
committerjimpop@template.hostname <>2015-11-04 22:49:05 +0000
commitb8811f8fc2d9bd27d1963c000ddaf05d951b5bda (patch)
treeb3447d4398422a86c259280b86f3f3e2b7c2b973 /Mailman
parenta777ae450ed966ca75f22c140fee938c5fd37996 (diff)
downloadmailman2-b8811f8fc2d9bd27d1963c000ddaf05d951b5bda.tar.gz
mailman2-b8811f8fc2d9bd27d1963c000ddaf05d951b5bda.tar.xz
mailman2-b8811f8fc2d9bd27d1963c000ddaf05d951b5bda.zip
Improvements based on feedback from Mark Sapiro
https://code.launchpad.net/~jimpop/mailman/mailman-auto-mod-verbose-members/+merge/276706/comments/699744
Diffstat (limited to 'Mailman')
-rwxr-xr-xMailman/Defaults.py.in2
-rw-r--r--Mailman/Handlers/SpamDetect.py2
-rw-r--r--Mailman/Utils.py8
-rwxr-xr-xMailman/versions.py3
4 files changed, 7 insertions, 8 deletions
diff --git a/Mailman/Defaults.py.in b/Mailman/Defaults.py.in
index 093ce1c8..80d8694c 100755
--- a/Mailman/Defaults.py.in
+++ b/Mailman/Defaults.py.in
@@ -1122,7 +1122,7 @@ DMARC_RESOLVER_LIFETIME = seconds(5)
# DEFAULT_MEMBER_VERBOSITY_INTERVAL = number of seconds to track posts
# DEFAULT_MEMBER_VERBOSITY_THRESHOLD = number of allowed posts per interval (0 to disable).
DEFAULT_MEMBER_VERBOSITY_INTERVAL = 300
-DEFAULT_MEMBER_VERBOSITY_THRESHOLD = 5
+DEFAULT_MEMBER_VERBOSITY_THRESHOLD = 0
# What domains should be considered equivalent when testing list membership
# for posting/moderation.
diff --git a/Mailman/Handlers/SpamDetect.py b/Mailman/Handlers/SpamDetect.py
index 6c10bb65..509e1e6e 100644
--- a/Mailman/Handlers/SpamDetect.py
+++ b/Mailman/Handlers/SpamDetect.py
@@ -123,7 +123,7 @@ error, contact the mailing list owner at %(listowner)s."""))
elif mlist.dmarc_moderation_action == 4:
raise Errors.DiscardMessage
- if Utils.IsVerboseMember(mlist, addr):
+ if mlist.member_verbosity_threshold > 0 and Utils.IsVerboseMember(mlist, addr):
mlist.setMemberOption(addr, mm_cfg.Moderate, 1)
syslog('vette', '%s: Automatically Moderated %s for verbose postings.',
mlist.real_name, addr)
diff --git a/Mailman/Utils.py b/Mailman/Utils.py
index a4eb05da..70ef34e8 100644
--- a/Mailman/Utils.py
+++ b/Mailman/Utils.py
@@ -1250,21 +1250,19 @@ def IsDMARCProhibited(mlist, email):
recentMemberPostings = {};
def IsVerboseMember(mlist, email):
- threshold = 5 if mlist.member_verbosity_threshold is None else mlist.member_verbosity_threshold
- if threshold == 0:
+ if mlist.member_verbosity_threshold == 0:
return False
- interval = 5 if mlist.member_verbosity_interval is None else mlist.member_verbosity_interval
email = email.lower()
t = time.time()
recentMemberPostings.setdefault(email,[]).append(t)
for t in recentMemberPostings[email]:
- if t < time.time() - float(interval):
+ if t < time.time() - float(mlist.member_verbosity_interval):
recentMemberPostings[email].remove(t)
- return len(recentMemberPostings[email]) >= threshold
+ return len(recentMemberPostings[email]) >= mlist.member_verbosity_threshold
def check_eq_domains(email, domains_list):
diff --git a/Mailman/versions.py b/Mailman/versions.py
index d1f06543..d13be94f 100755
--- a/Mailman/versions.py
+++ b/Mailman/versions.py
@@ -497,7 +497,8 @@ def NewVars(l):
add_only_if_missing('dmarc_moderation_notice', '')
add_only_if_missing('dmarc_wrapped_message_text',
mm_cfg.DEFAULT_DMARC_WRAPPED_MESSAGE_TEXT)
- add_only_if_missing('member_verbosity_threshold', 0)
+ add_only_if_missing('member_verbosity_threshold',
+ mm_cfg.DEFAULT_MEMBER_VERBOSITY_THRESHOLD)
add_only_if_missing('member_verbosity_interval',
mm_cfg.DEFAULT_MEMBER_VERBOSITY_INTERVAL)
add_only_if_missing('equivalent_domains',