aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/styles
diff options
context:
space:
mode:
authorJ08nY2017-06-09 17:41:24 +0200
committerJ08nY2017-06-09 17:41:24 +0200
commitb932ba4a32f208aa934bad8b4039e8c871b6715f (patch)
treec93f1277353928446dccaa4e16845fe9a83372b5 /src/mailman_pgp/styles
parent25487795779c05ff8e97680550948443924b98c0 (diff)
downloadmailman-pgp-b932ba4a32f208aa934bad8b4039e8c871b6715f.tar.gz
mailman-pgp-b932ba4a32f208aa934bad8b4039e8c871b6715f.tar.zst
mailman-pgp-b932ba4a32f208aa934bad8b4039e8c871b6715f.zip
Diffstat (limited to 'src/mailman_pgp/styles')
-rw-r--r--src/mailman_pgp/styles/__init__.py0
-rw-r--r--src/mailman_pgp/styles/announce.py17
-rw-r--r--src/mailman_pgp/styles/base.py23
-rw-r--r--src/mailman_pgp/styles/discussion.py17
4 files changed, 57 insertions, 0 deletions
diff --git a/src/mailman_pgp/styles/__init__.py b/src/mailman_pgp/styles/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/mailman_pgp/styles/__init__.py
diff --git a/src/mailman_pgp/styles/announce.py b/src/mailman_pgp/styles/announce.py
new file mode 100644
index 0000000..b4eae80
--- /dev/null
+++ b/src/mailman_pgp/styles/announce.py
@@ -0,0 +1,17 @@
+""""""
+
+from mailman.styles.default import LegacyAnnounceOnly
+from public import public
+
+from mailman_pgp.styles.base import EncryptedStyle
+
+
+@public
+class AnnounceStyle(LegacyAnnounceOnly, EncryptedStyle):
+ name = 'encrypted-announce'
+ description = 'Announce only encrypted mailing list style.'
+
+ def apply(self, mailing_list):
+ """See `IStyle`."""
+ LegacyAnnounceOnly.apply(self, mailing_list)
+ EncryptedStyle.apply(self, mailing_list)
diff --git a/src/mailman_pgp/styles/base.py b/src/mailman_pgp/styles/base.py
new file mode 100644
index 0000000..36d11c7
--- /dev/null
+++ b/src/mailman_pgp/styles/base.py
@@ -0,0 +1,23 @@
+""""""
+
+from public import public
+
+from mailman_pgp.config import config
+from mailman_pgp.database import transaction
+from mailman_pgp.model.list import EncryptedMailingList
+
+
+@public
+class EncryptedStyle:
+ def apply(self, mailing_list):
+ """Creates the encrypted mailing list instance for the list it's
+ applied to.
+ """
+ enc_list = config.db.session.query(EncryptedMailingList).filter_by(
+ list_id=mailing_list.list_id).first()
+ if enc_list:
+ return
+
+ enc_list = EncryptedMailingList(mailing_list)
+ with transaction():
+ config.db.session.add(enc_list)
diff --git a/src/mailman_pgp/styles/discussion.py b/src/mailman_pgp/styles/discussion.py
new file mode 100644
index 0000000..f9db7a7
--- /dev/null
+++ b/src/mailman_pgp/styles/discussion.py
@@ -0,0 +1,17 @@
+""""""
+
+from mailman.styles.default import LegacyDefaultStyle
+from public import public
+
+from mailman_pgp.styles.base import EncryptedStyle
+
+
+@public
+class DiscussionStyle(LegacyDefaultStyle, EncryptedStyle):
+ name = 'encrypted-default'
+ description = 'Ordinary discussion encrypted mailing list style.'
+
+ def apply(self, mailing_list):
+ """See `IStyle`."""
+ LegacyDefaultStyle.apply(self, mailing_list)
+ EncryptedStyle.apply(self, mailing_list)