aboutsummaryrefslogtreecommitdiffstats
path: root/modules/sympa/manifests/list.pp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/sympa/manifests/list.pp')
-rw-r--r--modules/sympa/manifests/list.pp57
1 files changed, 57 insertions, 0 deletions
diff --git a/modules/sympa/manifests/list.pp b/modules/sympa/manifests/list.pp
new file mode 100644
index 00000000..205d2719
--- /dev/null
+++ b/modules/sympa/manifests/list.pp
@@ -0,0 +1,57 @@
+define sympa::list( $subject,
+ $language = 'en',
+ $topics = false,
+ $reply_to = false,
+ $sender_subscriber = false,
+ $sender_email = false,
+ $sender_ldap_group = false,
+ $subscriber_ldap_group = false,
+ $public_archive = true,
+ $subscription_open = false,
+ $critical = false) {
+
+ include sympa::variable
+ $ldap_password = extlookup('sympa_ldap','x')
+ $custom_subject = $name
+
+ $xml_file = "/etc/sympa/lists_xml/${name}.xml"
+
+ file { $xml_file:
+ content => template('sympa/list.xml'),
+ require => Package[sympa],
+ }
+
+ exec { "sympa.pl --create_list --robot=${sympa::variable::vhost} --input_file=${xml_file}":
+ require => File[$xml_file],
+ creates => "/var/lib/sympa/expl/${name}",
+ before => File["/var/lib/sympa/expl/${name}/config"],
+ }
+
+ file { "/var/lib/sympa/expl/${name}/config":
+ owner => 'sympa',
+ group => 'sympa',
+ mode => '0750',
+ content => template('sympa/config'),
+ notify => Service['sympa'],
+ }
+
+ sympa::scenario::sender_restricted { $name:
+ ldap_group => $sender_ldap_group,
+ email => $sender_email,
+ allow_subscriber => $sender_subscriber,
+ }
+
+ if $subscriber_ldap_group {
+ if ! defined(Sympa::Search_filter::Ldap[$subscriber_ldap_group]) {
+ sympa::search_filter::ldap { $subscriber_ldap_group: }
+ }
+ }
+
+ if $sender_ldap_group {
+ if ! defined(Sympa::Search_filter::Ldap[$sender_ldap_group]) {
+ sympa::search_filter::ldap { $sender_ldap_group: }
+ }
+ }
+}
+
+