File 0001-Add-footer_sender_exceptions-option-T850567.patch of Package pykolab
From a9f988dad24b43d3af1da6a009cb4d14a22c9204 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <machniak@kolabsys.com>
Date: Wed, 26 Jul 2023 15:27:42 +0200
Subject: [PATCH 1/6] Add footer_sender_exceptions option (T850567)
Summary: Example: `footer_sender_exceptions = NONE, *.kolab.ch, kolab.ch`
Reviewers: #pykolab_developers, mollekopf
Reviewed By: #pykolab_developers, mollekopf
Subscribers: mollekopf, #pykolab_developers
Differential Revision: https://git.kolab.org/D4463
---
wallace/module_footer.py | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/wallace/module_footer.py b/wallace/module_footer.py
index 96e8cf6..75b7029 100644
--- a/wallace/module_footer.py
+++ b/wallace/module_footer.py
@@ -114,6 +114,23 @@ def execute(*args, **kw):
footer_position = conf.get('wallace', 'footer_position')
footer_html_file = conf.get('wallace', 'footer_html')
footer_text_file = conf.get('wallace', 'footer_text')
+ sender_exceptions = conf.get('wallace', 'footer_sender_exceptions')
+
+ if sender_exceptions:
+ sender = message.get("X-Kolab-From")
+ log.debug("Checking sender %r" % (sender), level=8)
+
+ if sender:
+ for item in sender_exceptions.split(','):
+ item = item.strip()
+ regex = '@' + item.replace('*', '[^@]+').replace('.', '\\.') + '$'
+ if item == 'NONE':
+ regex = '^<>$'
+
+ if re.search(regex, sender):
+ log.debug("Sender matches exception %s" % (item), level=8)
+ exec('modules.cb_action_%s(%r, %r)' % ('ACCEPT','footer', filepath))
+ return
if not os.path.isfile(footer_text_file) and not os.path.isfile(footer_html_file):
log.warning(_("No contents configured for footer module"))
--
2.41.0