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

Reply via email to