Robert Arlt Jr. has proposed merging
lp:~dukrat/mailman/star_accept_these_nonmembers_override into lp:mailman/2.1.
Requested reviews:
Mailman Coders (mailman-coders)
For more details, see:
https://code.launchpad.net/~dukrat/mailman/star_accept_these_nonmembers_override/+merge/113779
Adds options to have the *_these_nonmembers override the posting rights of
members included in *_these_nonmembers on a per list per *_these_nonmembers
basis.
--
https://code.launchpad.net/~dukrat/mailman/star_accept_these_nonmembers_override/+merge/113779
Your team Mailman Coders is requested to review the proposed merge of
lp:~dukrat/mailman/star_accept_these_nonmembers_override into lp:mailman/2.1.
=== modified file 'Mailman/Gui/Privacy.py'
--- Mailman/Gui/Privacy.py 2009-01-11 16:06:13 +0000
+++ Mailman/Gui/Privacy.py 2012-07-06 17:31:20 +0000
@@ -253,6 +253,12 @@
Mailman list in this installation, all of whose member
addresses will be accepted for this list.""")),
+ ('accept_these_nonmembers_override', mm_cfg.Radio,
+ (_('No'), _('Yes')), 0,
+ _("""If a member is listed in accept_these_nonmembers their
+ postings will be automatically accepted regardless of their user
+ moderation status""")),
+
('hold_these_nonmembers', mm_cfg.EmailListEx, (10, WIDTH), 1,
_("""List of non-member addresses whose postings will be
immediately held for moderation."""),
@@ -264,6 +270,12 @@
line; start the line with a ^ character to designate a regular
expression match.""")),
+ ('hold_these_nonmembers_override', mm_cfg.Radio,
+ (_('No'), _('Yes')), 0,
+ _("""If a member is listed in hold_these_nonmembers their postings
+ will be immedeiatly held for moderation regardless of their user
+ moderation status""")),
+
('reject_these_nonmembers', mm_cfg.EmailListEx, (10, WIDTH), 1,
_("""List of non-member addresses whose postings will be
automatically rejected."""),
@@ -279,6 +291,12 @@
<p>Add member addresses one per line; start the line with a ^
character to designate a regular expression match.""")),
+ ('reject_these_nonmembers_override', mm_cfg.Radio,
+ (_('No'), _('Yes')), 0,
+ _("""If a member is listed in reject_these_nonmembers their
+ postings will be automatically rejected regardless
+ of their user moderation status""")),
+
('discard_these_nonmembers', mm_cfg.EmailListEx, (10, WIDTH), 1,
_("""List of non-member addresses whose postings will be
automatically discarded."""),
@@ -293,6 +311,12 @@
<p>Add member addresses one per line; start the line with a ^
character to designate a regular expression match.""")),
+ ('discard_these_nonmembers_override', mm_cfg.Radio,
+ (_('No'), _('Yes')), 0,
+ _("""If a member is listed in discard_these_nonmembers their
+ postings will be automatically discarded regardless
+ of their user moderation status""")),
+
('generic_nonmember_action', mm_cfg.Radio,
(_('Accept'), _('Hold'), _('Reject'), _('Discard')), 0,
_("""Action to take for postings from non-members for which no
=== modified file 'Mailman/Handlers/Moderate.py'
--- Mailman/Handlers/Moderate.py 2011-01-25 01:16:17 +0000
+++ Mailman/Handlers/Moderate.py 2012-07-06 17:31:20 +0000
@@ -56,6 +56,22 @@
else:
sender = None
if sender:
+ listname = mlist.internal_name()
+ if mlist.accept_these_nonmembers_override == 1:
+ if matches_p(sender, mlist.accept_these_nonmembers, listname):
+ return
+ if mlist.hold_these_nonmembers_override == 1:
+ if matches_p(sender, mlist.hold_these_nonmembers, listname):
+ Hold.hold_for_approval(mlist, msg, msgdata, Hold.NonMemberPost)
+ # No return
+ if mlist.reject_these_nonmembers_override == 1:
+ if matches_p(sender, mlist.reject_these_nonmembers, listname):
+ do_reject(mlist)
+ # No return
+ if mlist.discard_these_nonmembers_override == 1:
+ if matches_p(sender, mlist.discard_these_nonmembers, listname):
+ do_discard(mlist, msg)
+ # No return
# If the member's moderation flag is on, then perform the moderation
# action.
if mlist.getMemberOption(sender, mm_cfg.Moderate):
=== modified file 'Mailman/MailList.py'
--- Mailman/MailList.py 2012-06-20 23:32:30 +0000
+++ Mailman/MailList.py 2012-07-06 17:31:20 +0000
@@ -388,6 +388,10 @@
# 2==Discard
self.member_moderation_action = 0
self.member_moderation_notice = ''
+ self.accept_these_nonmembers_override = 0
+ self.hold_these_nonmembers_override = 0
+ self.reject_these_nonmembers_override = 0
+ self.discard_these_nonmembers_override = 0
self.accept_these_nonmembers = []
self.hold_these_nonmembers = []
self.reject_these_nonmembers = []
=== modified file 'Mailman/Version.py'
--- Mailman/Version.py 2012-06-20 23:32:30 +0000
+++ Mailman/Version.py 2012-07-06 17:31:20 +0000
@@ -37,7 +37,7 @@
(REL_LEVEL << 4) | (REL_SERIAL << 0))
# config.pck schema version number
-DATA_FILE_VERSION = 100
+DATA_FILE_VERSION = 101
# qfile/*.db schema version number
QFILE_SCHEMA_VERSION = 3
=== modified file 'Mailman/versions.py'
--- Mailman/versions.py 2012-06-20 23:32:30 +0000
+++ Mailman/versions.py 2012-07-06 17:31:20 +0000
@@ -93,6 +93,16 @@
if not hasattr(l, newname) and newdefault is not uniqueval:
setattr(l, newname, newdefault)
+ # Patches for *_these_nonmembers_override
+ if not hasattr(l, 'accept_these_nonmembers_override'):
+ l.accept_these_nonmembers_override = 0
+ if not hasattr(l, 'hold_these_nonmembers_override'):
+ l.hold_these_nonmembers_override = 0
+ if not hasattr(l, 'reject_these_nonmembers_override'):
+ l.reject_these_nonmembers_override = 0
+ if not hasattr(l, 'discard_these_nonmembers_override'):
+ l.discard_these_nonmembers_override = 0
+
# Migrate to 2.1b3, baw 17-Aug-2001
if hasattr(l, 'dont_respond_to_post_requests'):
oldval = getattr(l, 'dont_respond_to_post_requests')
_______________________________________________
Mailman-coders mailing list
[email protected]
http://mail.python.org/mailman/listinfo/mailman-coders