summaryrefslogtreecommitdiff
path: root/Mailman/MailList.py
diff options
context:
space:
mode:
authorbwarsaw1999-11-10 23:08:46 +0000
committerbwarsaw1999-11-10 23:08:46 +0000
commitb16952ebb18ab75b8817adce85ea28ae2083229d (patch)
tree3bd123f501513feea172c52028ac23d584da4850 /Mailman/MailList.py
parent3939c2df0550ad06195dc1ba546489eccd7e0aea (diff)
downloadmailman-b16952ebb18ab75b8817adce85ea28ae2083229d.tar.gz
mailman-b16952ebb18ab75b8817adce85ea28ae2083229d.tar.zst
mailman-b16952ebb18ab75b8817adce85ea28ae2083229d.zip
ProcessConfirmation(): Ensure that the mailing list is Save()'d even
if an MMNeedApproval exception is raised.
Diffstat (limited to 'Mailman/MailList.py')
-rw-r--r--Mailman/MailList.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/Mailman/MailList.py b/Mailman/MailList.py
index c23bd8b57..09ca94427 100644
--- a/Mailman/MailList.py
+++ b/Mailman/MailList.py
@@ -944,13 +944,15 @@ class MailList(MailCommandHandler, HTMLFormatter, Deliverer, ListAdmin,
raise Errors.MMBadConfirmation
else:
(email_addr, password, digest) = got
- if self.subscribe_policy == 3: # confirm + approve
- self.HoldSubscription(email_addr, password, digest)
- raise Errors.MMNeedApproval, \
- 'subscriptions to %s require administrator approval' % \
- self.real_name
- self.ApprovedAddMember(email_addr, password, digest)
- self.Save()
+ try:
+ if self.subscribe_policy == 3: # confirm + approve
+ self.HoldSubscription(email_addr, password, digest)
+ raise Errors.MMNeedApproval, \
+ 'subscriptions to %s require administrator approval' % \
+ self.real_name
+ self.ApprovedAddMember(email_addr, password, digest)
+ finally:
+ self.Save()
def ApprovedAddMember(self, name, password, digest,
ack=None, admin_notif=None):