From 022829f374ad7859665b6cfa72eb2fa3e5c9e28b Mon Sep 17 00:00:00 2001
From: Fabien COMBERNOUS <fabien.combernous@adullact.org>
Date: Mon, 31 Mar 2025 09:59:24 +0200
Subject: [PATCH] Fix template for dkim_signature_apply_on and
 dmarc_protection.mode arrays

---
 spec/classes/sympa_spec.rb | 17 +++++++++++++++++
 templates/sympa.conf.epp   |  4 ++--
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/spec/classes/sympa_spec.rb b/spec/classes/sympa_spec.rb
index 3986fe6..5276d93 100644
--- a/spec/classes/sympa_spec.rb
+++ b/spec/classes/sympa_spec.rb
@@ -99,6 +99,23 @@ describe 'sympa' do
 
         it { is_expected.to compile.and_raise_error(%r{With dkim_feature true, dkim_private_key is mandatory.}) }
       end
+
+      context 'with dkim_feature and dmarc_protection enabled' do
+        let(:params) do
+          {
+            dkim_feature: true,
+            dkim_private_key: '/etc/sympa/foo.key',
+            dmarc_protection: true,
+          }
+        end
+
+        it { is_expected.to compile.with_all_deps }
+        it do
+          is_expected.to contain_file('/home/sympa/etc/sympa.conf') \
+            .with_content(%r{^dkim_signature_apply_on\s+any$}) \
+            .with_content(%r{^dmarc_protection\.mode\s+all$})
+        end
+      end
     end
   end
 end
diff --git a/templates/sympa.conf.epp b/templates/sympa.conf.epp
index 3c1dc54..d27909e 100644
--- a/templates/sympa.conf.epp
+++ b/templates/sympa.conf.epp
@@ -46,13 +46,13 @@ wwsympa_url         https://<%= $sympa::listdomain %>/sympa
 dkim_feature                     on
 dkim_parameters.private_key_path <%= $sympa::prefix_path %>/<%= $sympa::sysconf_dir %>/dkim/<%= $sympa::listdomain %>/<%= $sympa::dkim_selector %>.key
 dkim_parameters.selector         <%= $sympa::dkim_selector %>
-dkim_signature_apply_on          <%= $sympa::dkim_signature_apply_on %>
+dkim_signature_apply_on          <%= $sympa::dkim_signature_apply_on.join(',') %>
 <% } else { -%>
 dkim_feature                     off
 <% } -%>
 
 <% if $sympa::dmarc_protection { -%>
-dmarc_protection.mode   <%= $sympa::dmarc_protection_mode %>
+dmarc_protection.mode   <%= $sympa::dmarc_protection_mode.join(',') %>
 dmarc_protection.phrase <%= $sympa::dmarc_protection_phrase %>
 <% } else { -%>
 dmarc_protection.mode   none
-- 
GitLab