diff options
| author | J08nY | 2017-07-11 15:13:15 +0200 |
|---|---|---|
| committer | J08nY | 2017-07-11 15:13:15 +0200 |
| commit | 288d5c07825f67e6fd92e93fc3d8369310e268d1 (patch) | |
| tree | c16c0cec577689e7a7c840a09e90cfc0308688c9 | |
| parent | 383ce5f4cc6cb81f91f90f3408742c4c06bca301 (diff) | |
| download | mailman-pgp-288d5c07825f67e6fd92e93fc3d8369310e268d1.tar.gz mailman-pgp-288d5c07825f67e6fd92e93fc3d8369310e268d1.tar.zst mailman-pgp-288d5c07825f67e6fd92e93fc3d8369310e268d1.zip | |
| -rw-r--r-- | src/mailman_pgp/workflows/subscription.py | 40 | ||||
| -rw-r--r-- | src/mailman_pgp/workflows/tests/test_subscription.py | 6 |
2 files changed, 42 insertions, 4 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 = ( diff --git a/src/mailman_pgp/workflows/tests/test_subscription.py b/src/mailman_pgp/workflows/tests/test_subscription.py index f8a67f3..9464a83 100644 --- a/src/mailman_pgp/workflows/tests/test_subscription.py +++ b/src/mailman_pgp/workflows/tests/test_subscription.py @@ -26,7 +26,7 @@ from mailman_pgp.database import mm_transaction from mailman_pgp.testing.layers import PGPConfigLayer from mailman_pgp.workflows.subscription import ( ConfirmModerationSubscriptionPolicy, ConfirmSubscriptionPolicy, - ModerationSubscriptionPolicy) + ModerationSubscriptionPolicy, OpenSubscriptionPolicy) class TestSubscriptionWorkflows(unittest.TestCase): @@ -39,6 +39,10 @@ class TestSubscriptionWorkflows(unittest.TestCase): self.sender = getUtility(IUserManager).create_address( 'rsa-1024b@example.org') + def test_open_policy(self): + workflow = OpenSubscriptionPolicy(self.mlist, self.sender) + next(workflow) + def test_confirm_policy(self): workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender) next(workflow) |
