diff options
Diffstat (limited to 'src/mailman/commands/eml_confirm.py')
| -rw-r--r-- | src/mailman/commands/eml_confirm.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mailman/commands/eml_confirm.py b/src/mailman/commands/eml_confirm.py index a28a3f728..ddf0db0e2 100644 --- a/src/mailman/commands/eml_confirm.py +++ b/src/mailman/commands/eml_confirm.py @@ -25,7 +25,7 @@ __all__ = [ from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand from mailman.interfaces.registrar import IRegistrar -from zope.component import getUtility +from mailman.interfaces.subscriptions import TokenOwner from zope.interface import implementer @@ -53,7 +53,19 @@ class Confirm: return ContinueProcessing.yes tokens.add(token) results.confirms = tokens - succeeded = getUtility(IRegistrar).confirm(token) + try: + token, token_owner, member = IRegistrar(mlist).confirm(token) + if token is None: + assert token_owner is TokenOwner.no_one, token_owner + assert member is not None, member + succeeded = True + else: + assert token_owner is not TokenOwner.no_one, token_owner + assert member is None, member + succeeded = False + except LookupError: + # The token must not exist in the database. + succeeded = False if succeeded: print(_('Confirmed'), file=results) return ContinueProcessing.yes |
