aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/runners/outgoing.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman_pgp/runners/outgoing.py')
-rw-r--r--src/mailman_pgp/runners/outgoing.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/mailman_pgp/runners/outgoing.py b/src/mailman_pgp/runners/outgoing.py
new file mode 100644
index 0000000..2723b17
--- /dev/null
+++ b/src/mailman_pgp/runners/outgoing.py
@@ -0,0 +1,24 @@
+"""The encryption-aware outgoing runner"""
+
+from mailman.config import config as mailman_config
+from mailman.core.runner import Runner
+from mailman.email.message import Message
+from mailman.model.mailinglist import MailingList
+from public import public
+
+from mailman_pgp.config import config
+from mailman_pgp.model.list import EncryptedMailingList
+
+
+@public
+class OutgoingRunner(Runner):
+ def _dispose(self, mlist: MailingList, msg: Message, msgdata: dict):
+ """See `IRunner`."""
+ encrypted_list = config.db.query(EncryptedMailingList).filter_by(
+ list_id=mlist.list_id).first()
+ if not encrypted_list:
+ outq = config.get('queues', 'out')
+ mailman_config.switchboards[outq].enqueue(msg,
+ msgdata,
+ listid=mlist.list_id)
+ return False