diff options
| author | bwarsaw | 1999-11-10 23:08:46 +0000 |
|---|---|---|
| committer | bwarsaw | 1999-11-10 23:08:46 +0000 |
| commit | b16952ebb18ab75b8817adce85ea28ae2083229d (patch) | |
| tree | 3bd123f501513feea172c52028ac23d584da4850 /Mailman/MailList.py | |
| parent | 3939c2df0550ad06195dc1ba546489eccd7e0aea (diff) | |
| download | mailman-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.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): |
