aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/workflows/subscription.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman_pgp/workflows/subscription.py')
-rw-r--r--src/mailman_pgp/workflows/subscription.py68
1 files changed, 38 insertions, 30 deletions
diff --git a/src/mailman_pgp/workflows/subscription.py b/src/mailman_pgp/workflows/subscription.py
index 809b7cb..2546f1e 100644
--- a/src/mailman_pgp/workflows/subscription.py
+++ b/src/mailman_pgp/workflows/subscription.py
@@ -19,18 +19,19 @@
from mailman.core.i18n import _
from mailman.interfaces.workflows import ISubscriptionWorkflow
-from mailman.workflows.common import (ConfirmationMixin, ModerationMixin,
- SubscriptionBase, VerificationMixin)
+from mailman.workflows.common import (ConfirmationMixin, VerificationMixin)
from public import public
from zope.interface import implementer
-from mailman_pgp.workflows.base import PGPMixin
-from mailman_pgp.workflows.pubkey import ConfirmPubkeyMixin, SetPubkeyMixin
+from mailman_pgp.workflows.base import PGPMixin, PGPSubscriptionBase
+from mailman_pgp.workflows.key_confirm import ConfirmPubkeyMixin
+from mailman_pgp.workflows.key_set import SetPubkeyMixin
+from mailman_pgp.workflows.mod_approval import ModeratorSubApprovalMixin
@public
@implementer(ISubscriptionWorkflow)
-class OpenSubscriptionPolicy(SubscriptionBase, VerificationMixin,
+class OpenSubscriptionPolicy(PGPSubscriptionBase, VerificationMixin,
SetPubkeyMixin, ConfirmPubkeyMixin,
PGPMixin):
""""""
@@ -52,26 +53,28 @@ class OpenSubscriptionPolicy(SubscriptionBase, VerificationMixin,
def __init__(self, mlist, subscriber=None, *,
pre_verified=False, pubkey=None,
pubkey_pre_confirmed=False):
- SubscriptionBase.__init__(self, mlist, subscriber)
+ PGPSubscriptionBase.__init__(self, mlist, subscriber)
VerificationMixin.__init__(self, pre_verified=pre_verified)
SetPubkeyMixin.__init__(self, pubkey=pubkey)
ConfirmPubkeyMixin.__init__(self, pre_confirmed=pubkey_pre_confirmed)
- PGPMixin.__init__(self)
+ PGPMixin.__init__(self, mlist)
def _step_prepare(self):
self.push('do_subscription')
+ self.push('restore_subscriber')
self.push('pubkey_confirmation')
+ self.push('restore_address')
self.push('pubkey_checks')
- self.push('pgp_prepare')
+ self.push('create_address')
self.push('verification_checks')
self.push('sanity_checks')
@public
@implementer(ISubscriptionWorkflow)
-class ConfirmSubscriptionPolicy(SubscriptionBase, VerificationMixin,
+class ConfirmSubscriptionPolicy(PGPSubscriptionBase, VerificationMixin,
ConfirmationMixin, SetPubkeyMixin,
- ConfirmPubkeyMixin, PGPMixin):
+ ConfirmPubkeyMixin):
""""""
name = 'pgp-policy-confirm'
@@ -92,18 +95,19 @@ class ConfirmSubscriptionPolicy(SubscriptionBase, VerificationMixin,
def __init__(self, mlist, subscriber=None, *,
pre_verified=False, pre_confirmed=False, pubkey=None,
pubkey_pre_confirmed=False):
- SubscriptionBase.__init__(self, mlist, subscriber)
+ PGPSubscriptionBase.__init__(self, mlist, subscriber)
VerificationMixin.__init__(self, pre_verified=pre_verified)
ConfirmationMixin.__init__(self, pre_confirmed=pre_confirmed)
SetPubkeyMixin.__init__(self, pubkey=pubkey)
ConfirmPubkeyMixin.__init__(self, pre_confirmed=pubkey_pre_confirmed)
- PGPMixin.__init__(self)
def _step_prepare(self):
self.push('do_subscription')
+ self.push('restore_subscriber')
self.push('pubkey_confirmation')
+ self.push('restore_address')
self.push('pubkey_checks')
- self.push('pgp_prepare')
+ self.push('create_address')
self.push('confirmation_checks')
self.push('verification_checks')
self.push('sanity_checks')
@@ -111,9 +115,9 @@ class ConfirmSubscriptionPolicy(SubscriptionBase, VerificationMixin,
@public
@implementer(ISubscriptionWorkflow)
-class ModerationSubscriptionPolicy(SubscriptionBase, VerificationMixin,
- ModerationMixin, SetPubkeyMixin,
- ConfirmPubkeyMixin, PGPMixin):
+class ModerationSubscriptionPolicy(PGPSubscriptionBase, VerificationMixin,
+ ModeratorSubApprovalMixin, SetPubkeyMixin,
+ ConfirmPubkeyMixin):
""""""
name = 'pgp-policy-moderate'
@@ -134,29 +138,31 @@ class ModerationSubscriptionPolicy(SubscriptionBase, VerificationMixin,
def __init__(self, mlist, subscriber=None, *,
pre_verified=False, pre_approved=False, pubkey=None,
pubkey_pre_confirmed=False):
- SubscriptionBase.__init__(self, mlist, subscriber)
+ PGPSubscriptionBase.__init__(self, mlist, subscriber)
VerificationMixin.__init__(self, pre_verified=pre_verified)
- ModerationMixin.__init__(self, pre_approved=pre_approved)
+ ModeratorSubApprovalMixin.__init__(self, pre_approved=pre_approved)
SetPubkeyMixin.__init__(self, pubkey=pubkey)
ConfirmPubkeyMixin.__init__(self, pre_confirmed=pubkey_pre_confirmed)
- PGPMixin.__init__(self)
def _step_prepare(self):
self.push('do_subscription')
- self.push('moderation_checks')
+ self.push('restore_subscriber')
+ self.push('mod_approval')
self.push('pubkey_confirmation')
+ self.push('restore_address')
self.push('pubkey_checks')
- self.push('pgp_prepare')
+ self.push('create_address')
self.push('verification_checks')
self.push('sanity_checks')
@public
@implementer(ISubscriptionWorkflow)
-class ConfirmModerationSubscriptionPolicy(SubscriptionBase, VerificationMixin,
- ConfirmationMixin, ModerationMixin,
- SetPubkeyMixin, ConfirmPubkeyMixin,
- PGPMixin):
+class ConfirmModerationSubscriptionPolicy(PGPSubscriptionBase,
+ VerificationMixin,
+ ConfirmationMixin,
+ ModeratorSubApprovalMixin,
+ SetPubkeyMixin, ConfirmPubkeyMixin):
""""""
name = 'pgp-policy-confirm-moderate'
@@ -178,20 +184,22 @@ class ConfirmModerationSubscriptionPolicy(SubscriptionBase, VerificationMixin,
def __init__(self, mlist, subscriber=None, *,
pre_verified=False, pre_confirmed=False, pre_approved=False,
pubkey=None, pubkey_pre_confirmed=False):
- SubscriptionBase.__init__(self, mlist, subscriber)
+ PGPSubscriptionBase.__init__(self, mlist, subscriber)
VerificationMixin.__init__(self, pre_verified=pre_verified)
ConfirmationMixin.__init__(self, pre_confirmed=pre_confirmed)
- ModerationMixin.__init__(self, pre_approved=pre_approved)
+ ModeratorSubApprovalMixin.__init__(self, pre_approved=pre_approved)
SetPubkeyMixin.__init__(self, pubkey=pubkey)
ConfirmPubkeyMixin.__init__(self, pre_confirmed=pubkey_pre_confirmed)
- PGPMixin.__init__(self)
def _step_prepare(self):
self.push('do_subscription')
- self.push('moderation_checks')
+ self.push('restore_subscriber')
+ self.push('mod_approval')
+ self.push('restore_address')
self.push('pubkey_confirmation')
+ self.push('restore_address')
self.push('pubkey_checks')
- self.push('pgp_prepare')
+ self.push('create_address')
self.push('confirmation_checks')
self.push('verification_checks')
self.push('sanity_checks')