diff options
Diffstat (limited to 'src/mailman_pgp/runners/outgoing.py')
| -rw-r--r-- | src/mailman_pgp/runners/outgoing.py | 24 |
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 |
