Comment 2 for bug 265851

Revision history for this message
Dave Neary (dneary) wrote :

There is a patch for this by Jon Carnes from 2003 that uses the special list name "post-only" for mailman 2.1 which still applies pretty cleanly to Mailman/Handlers/Moderate.py on the tip of the 2.1 branch today. I assume it could easily be adapted for the 3.0 branch.

http://<email address hidden>/msg14876.html

The patch:

*** jonc.Moderate.py Mon Jan 27 10:23:03 2003
--- Moderate.py Mon Jan 27 13:19:33 2003
***************
*** 25,28 ****
--- 25,30 ----
  from Mailman import Utils
  from Mailman import Message
+ from Mailman import MailList
+ from Mailman import MemberAdaptor
  from Mailman import Errors
  from Mailman.i18n import _
***************
*** 45,48 ****
--- 47,59 ----

  ^L
+ def CheckPostOnly(sender):
+ try:
+ m = MailList.MailList('post-only', lock=0)
+ return m.isMember(sender)
+ except Errors.MMListError:
+ return 0
+
+
+ ^L
  def process(mlist, msg, msgdata):
      if msgdata.get('approved'):
***************
*** 89,92 ****
--- 100,105 ----
      # From here on out, we're dealing with non-members.
      if matches_p(sender, mlist.accept_these_nonmembers):
+ return
+ if CheckPostOnly(sender):
          return
      if matches_p(sender, mlist.hold_these_nonmembers):