From 3f7ca33b653228cc1cfa1596e832fea06df7dd15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20Pinson?= <raphael.pinson@camptocamp.com>
Date: Mon, 22 Jul 2013 16:44:25 +0200
Subject: [PATCH] postfix::ldap

---
 manifests/files.pp |  2 +-
 manifests/init.pp  | 23 +++++++++++++++++++++++
 manifests/ldap.pp  |  7 ++-----
 3 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/manifests/files.pp b/manifests/files.pp
index d765032..ecc0a63 100644
--- a/manifests/files.pp
+++ b/manifests/files.pp
@@ -69,7 +69,7 @@ class postfix::files {
 
   ::postfix::config {
     'myorigin':         value => $myorigin;
-    'alias_maps':       value => 'hash:/etc/aliases';
+    'alias_maps':       value => $postfix::alias_maps;
     'inet_interfaces':  value => $inet_interfaces;
   }
 
diff --git a/manifests/init.pp b/manifests/init.pp
index a6b5964..0d13ca7 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -7,10 +7,18 @@
 # Parameters:
 # [*inet_interfaces*]     - (string)
 #
+# [*ldap*]                - (boolean)
+#
+# [*ldap_base*]           - (string)
+#
 # [*mail_user*]           - (string) The mail user
 #
 # [*mailman*]             - (boolean)
 #
+# [*maincf_source*]       - (string)
+#
+# [*mastercf_source*]     - (string)
+#
 # [*master_smtp*]         - (string)
 #
 # [*master_smtps*]        - (string)
@@ -50,6 +58,8 @@
 #
 class postfix (
   $inet_interfaces     = 'all',
+  $ldap                = false,
+  $ldap_base           = undef,
   $mail_user           = 'vmail',     # postfix_mail_user
   $mailman             = false,
   $maincf_source       = "puppet:///modules/${module_name}/main.cf",
@@ -72,6 +82,7 @@ class postfix (
 ) inherits postfix::params {
 
 
+  validate_bool($ldap)
   validate_bool($mailman)
   validate_bool($mta)
   validate_bool($satellite)
@@ -81,7 +92,10 @@ class postfix (
   validate_bool($use_sympa)
 
   validate_string($inet_interfaces)
+  validate_string($ldap_base)
   validate_string($mail_user)
+  validate_string($maincf_source)
+  validate_string($mastercf_source)
   validate_string($master_smtp)
   validate_string($master_smtps)
   validate_string($mydestination)
@@ -98,11 +112,20 @@ class postfix (
     default => $smtp_listen,
   }
 
+  $alias_maps = $ldap ? {
+    false => 'hash:/etc/aliases',
+    true  => '"hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf"',
+  }
+
   class { 'postfix::packages': } ->
   class { 'postfix::files': } ~>
   class { 'postfix::service': } ->
   Class['postfix']
 
+  if $ldap {
+    include ::postfix::ldap
+  }
+
   if $mta {
     include ::postfix::mta
   }
diff --git a/manifests/ldap.pp b/manifests/ldap.pp
index 403bcd5..07599ce 100644
--- a/manifests/ldap.pp
+++ b/manifests/ldap.pp
@@ -1,11 +1,8 @@
-class postfix::ldap inherits postfix {
-  Postfix::Config['alias_maps'] {
-    value => '"hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf"',
-  }
+class postfix::ldap {
 
   package {'postfix-ldap': }
 
-  if ! $::postfix_ldap_base {
+  if ! $::postfix::ldap_base {
     fail 'Missing $postfix_ldap_base !'
   }
 
-- 
GitLab