diff options
Diffstat (limited to 'src/mailman_pgp/workflows/subscription.py')
| -rw-r--r-- | src/mailman_pgp/workflows/subscription.py | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/src/mailman_pgp/workflows/subscription.py b/src/mailman_pgp/workflows/subscription.py index 6b8240c..a7565f3 100644 --- a/src/mailman_pgp/workflows/subscription.py +++ b/src/mailman_pgp/workflows/subscription.py @@ -29,12 +29,46 @@ from mailman_pgp.workflows.base import PubkeyMixin @public @implementer(ISubscriptionWorkflow) +class OpenSubscriptionPolicy(SubscriptionBase, VerificationMixin, PubkeyMixin): + """""" + + name = 'pgp-policy-open' + description = _('An open subscription policy, ' + 'for a PGP-enabled mailing list.') + initial_state = 'prepare' + save_attributes = ( + 'verified', + 'pubkey_key', + 'pubkey_confirmed', + 'address_key', + 'subscriber_key', + 'user_key', + 'token_owner_key', + ) + + def __init__(self, mlist, subscriber=None, *, + pre_verified=False, pubkey=None, + pubkey_pre_confirmed=False): + SubscriptionBase.__init__(self, mlist, subscriber) + VerificationMixin.__init__(self, pre_verified=pre_verified) + PubkeyMixin.__init__(self, pubkey=pubkey, + pre_confirmed=pubkey_pre_confirmed) + + def _step_prepare(self): + self.push('do_subscription') + self.push('pubkey_checks') + self.push('verification_checks') + self.push('sanity_checks') + + +@public +@implementer(ISubscriptionWorkflow) class ConfirmSubscriptionPolicy(SubscriptionBase, VerificationMixin, ConfirmationMixin, PubkeyMixin): """""" name = 'pgp-policy-confirm' - description = _('An subscription policy, for a PGP-enabled mailing list ' + description = _('A subscription policy, for a PGP-enabled mailing list ' 'that requires confirmation.') initial_state = 'prepare' save_attributes = ( @@ -72,7 +106,7 @@ class ModerationSubscriptionPolicy(SubscriptionBase, VerificationMixin, """""" name = 'pgp-policy-moderate' - description = _('An subscription policy, for a PGP-enabled mailing list ' + description = _('A subscription policy, for a PGP-enabled mailing list ' 'that requires moderation.') initial_state = 'prepare' save_attributes = ( @@ -111,7 +145,7 @@ class ConfirmModerationSubscriptionPolicy(SubscriptionBase, VerificationMixin, """""" name = 'pgp-policy-confirm-moderate' - description = _('An subscription policy, for a PGP-enabled mailing list ' + description = _('A subscription policy, for a PGP-enabled mailing list ' 'that requires moderation after confirmation.') initial_state = 'prepare' save_attributes = ( |
