summaryrefslogtreecommitdiff
path: root/Mailman/MailList.py
diff options
context:
space:
mode:
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):