From cbd89e003f00a6e03d05a146338c456f26bdce6e Mon Sep 17 00:00:00 2001
From: Lars Beckers <lars.beckers@rwth-aachen.de>
Date: Sun, 25 Apr 2021 23:47:04 +0200
Subject: [PATCH] postfix: ease configuration of multiple similar aliases

---
 postfix/defaults/main.yml    |  1 +
 postfix/templates/aliases.j2 | 13 ++++++++++---
 postfix/templates/virtual.j2 |  2 +-
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/postfix/defaults/main.yml b/postfix/defaults/main.yml
index 3c1adc3..1f89644 100644
--- a/postfix/defaults/main.yml
+++ b/postfix/defaults/main.yml
@@ -34,6 +34,7 @@ postfix_network_access:
 postfix_content_filter: false  # or: spamassassin
 postfix_message_size_limit: 10240000  # 10M
 
+postfix_aliases_rt_url: ''
 postfix_aliases_rt: []
 #  - queue: IT
 #    url: https://rt.example.com
diff --git a/postfix/templates/aliases.j2 b/postfix/templates/aliases.j2
index 1604e7c..b52c679 100644
--- a/postfix/templates/aliases.j2
+++ b/postfix/templates/aliases.j2
@@ -1,7 +1,14 @@
 {% for alias in system_aliases %}
-{{ alias.src }}: {{ alias.dest }}
+{% if alias.src is string %}
+{{ alias.src }}: {{ alias.dest if alias.dest is string else alias.dest|join(', ') }}
+{% else %}
+{% for src in alias.src %}
+{{ src }}: {{ alias.dest if alias.dest is string else alias.dest|join(', ') }}
 {% endfor %}
+{% endif %}
+{% endfor %}
+
 {% for alias in postfix_aliases_rt|default([]) %}
-{{ alias.address|default(alias.queue|lower) }}: "|/usr/bin/rt-mailgate --queue {{ alias.queue }} --action correspond --url {{ alias.url }}"
-{{ alias.address|default(alias.queue|lower) }}-comment: "|/usr/bin/rt-mailgate --queue {{ alias.queue }} --action comment --url {{ alias.url }}"
+{{ alias.address|default(alias.queue|lower) }}: "|/usr/bin/rt-mailgate --queue {{ alias.queue }} --action correspond --url {{ alias.url|default(postfix_aliases_rt_url) }}"
+{{ alias.address|default(alias.queue|lower) }}-comment: "|/usr/bin/rt-mailgate --queue {{ alias.queue }} --action comment --url {{ alias.url|default(postfix_aliases_rt_url) }}"
 {% endfor %}
diff --git a/postfix/templates/virtual.j2 b/postfix/templates/virtual.j2
index ac13c8d..5f6230e 100644
--- a/postfix/templates/virtual.j2
+++ b/postfix/templates/virtual.j2
@@ -6,7 +6,7 @@ abuse@{{ domain }} {{ adminaddr }}
 
 {% for alias in virtual_aliases %}
 {% if alias.src is string %}
-{{ alias.src }} {{ alias.dest }}
+{{ alias.src }} {{ alias.dest if alias.dest is string else alias.dest|join(', ') }}
 {% else %}
 {% for src in alias.src %}
 {{ src }}@{{ alias.domain }} {{ alias.dest if alias.dest is string else alias.dest|join(', ') }}
-- 
GitLab