diff options
| author | J08nY | 2017-07-12 18:57:01 +0200 |
|---|---|---|
| committer | J08nY | 2017-08-30 13:18:40 +0200 |
| commit | 50a51a08f067f12b3a2d72a36b4173d9d2249a69 (patch) | |
| tree | c5c51775a8e13c67dbacb8abdbc33dd148540711 /src/mailman/app/subscriptions.py | |
| parent | 4cf5a425fe1242d3ceb6a0f68d0655b2ffe05594 (diff) | |
| download | mailman-50a51a08f067f12b3a2d72a36b4173d9d2249a69.tar.gz mailman-50a51a08f067f12b3a2d72a36b4173d9d2249a69.tar.zst mailman-50a51a08f067f12b3a2d72a36b4173d9d2249a69.zip | |
Diffstat (limited to 'src/mailman/app/subscriptions.py')
| -rw-r--r-- | src/mailman/app/subscriptions.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/mailman/app/subscriptions.py b/src/mailman/app/subscriptions.py index cc28ea859..a0c0c8059 100644 --- a/src/mailman/app/subscriptions.py +++ b/src/mailman/app/subscriptions.py @@ -17,6 +17,7 @@ """Handle subscriptions.""" +from mailman.config import config from mailman.database.transaction import flush from mailman.interfaces.listmanager import ListDeletingEvent from mailman.interfaces.pending import IPendings @@ -56,11 +57,13 @@ class SubscriptionManager: if pendable is None: raise LookupError workflow_type = pendable.get('type') - assert workflow_type in (PendableSubscription.PEND_TYPE, - PendableUnsubscription.PEND_TYPE) - workflow = (self._mlist.subscription_policy - if workflow_type == PendableSubscription.PEND_TYPE - else self._mlist.unsubscription_policy)(self._mlist) + if workflow_type in {PendableSubscription.PEND_TYPE, + PendableUnsubscription.PEND_TYPE}: + workflow = (self._mlist.subscription_policy + if workflow_type == PendableSubscription.PEND_TYPE + else self._mlist.unsubscription_policy)(self._mlist) + else: + workflow = config.workflows[workflow_type](self._mlist) workflow.token = token workflow.restore() # In order to just run the whole workflow, all we need to do @@ -84,6 +87,6 @@ def handle_ListDeletingEvent(event): return # Find all the members still associated with the mailing list. members = getUtility(ISubscriptionService).find_members( - list_id=event.mailing_list.list_id) + list_id=event.mailing_list.list_id) for member in members: member.unsubscribe() |
