diff options
Diffstat (limited to 'Mailman/MailList.py')
| -rw-r--r-- | Mailman/MailList.py | 16 |
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): |
