summaryrefslogtreecommitdiff
path: root/Mailman/Commands/cmd_confirm.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/Commands/cmd_confirm.py')
-rw-r--r--Mailman/Commands/cmd_confirm.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/Mailman/Commands/cmd_confirm.py b/Mailman/Commands/cmd_confirm.py
index 83992cf05..c2f147f9e 100644
--- a/Mailman/Commands/cmd_confirm.py
+++ b/Mailman/Commands/cmd_confirm.py
@@ -50,7 +50,6 @@ Invalid confirmation string. Note that confirmation strings expire
approximately %(days)s days after the initial subscription request. If your
confirmation has expired, please try to re-submit your original request or
message."""))
- return STOP
except Errors.MMNeedApproval:
res.results.append(_("""\
Your request has been forwarded to the list moderator for approval."""))
@@ -58,12 +57,21 @@ Your request has been forwarded to the list moderator for approval."""))
# Some other subscription request for this address has
# already succeeded.
res.results.append(_('You are already subscribed.'))
- return STOP
except Errors.NotAMemberError:
# They've already been unsubscribed
res.results.append(_("""\
You are not current a member. Have you already unsubscribed or changed
your email address?"""))
- return STOP
else:
res.results.append(_('Confirmation succeeded'))
+ # Consume any other confirmation strings with the same cookie so the
+ # user doesn't get a misleading "unprocessed" message.
+ match = 'confirm ' + cookie
+ unprocessed = []
+ for line in res.commands:
+ if line.lstrip() == match:
+ continue
+ unprocessed.append(line)
+ res.commands = unprocessed
+ # Process just one confirmation string per message
+ return STOP