aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman/Handlers/CalcRecips.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/Handlers/CalcRecips.py')
-rwxr-xr-x[-rw-r--r--]Mailman/Handlers/CalcRecips.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/Mailman/Handlers/CalcRecips.py b/Mailman/Handlers/CalcRecips.py
index db10c432..069c88a8 100644..100755
--- a/Mailman/Handlers/CalcRecips.py
+++ b/Mailman/Handlers/CalcRecips.py
@@ -63,7 +63,8 @@ def process(mlist, msg, msgdata):
missing = []
password = msg.get('urgent', missing)
if password is not missing:
- if mlist.Authenticate((mm_cfg.AuthListModerator,
+ if mlist.Authenticate((mm_cfg.AuthListPoster,
+ mm_cfg.AuthListModerator,
mm_cfg.AuthListAdmin),
password):
recips = mlist.getMemberCPAddresses(mlist.getRegularMemberKeys() +
@@ -179,6 +180,18 @@ def do_exclude(mlist, msg, msgdata, recips):
syslog('error', 'Exclude list %s is not in the same domain.',
listname)
continue
+ if mlist.regular_exclude_ignore:
+ for sender in msg.get_senders():
+ if slist.isMember(sender):
+ break
+ for sender in Utils.check_eq_domains(sender,
+ slist.equivalent_domains):
+ if slist.isMember(sender):
+ break
+ if slist.isMember(sender):
+ break
+ else:
+ continue
srecips = set([slist.getMemberCPAddress(m)
for m in slist.getRegularMemberKeys()
if slist.getDeliveryStatus(m) == ENABLED])