summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2011-11-14 11:42:58 -0500
committerMicah Anderson <micah@riseup.net>2011-11-14 11:42:58 -0500
commit5226583c8c6ecd74d0621b2b61e56ab9f98bcb6c (patch)
tree91cb5aa98fe5c25a8d381aaff14db76efc8162c4 /manifests
parent4694e77991dadf1bcc54fd9ff5b7651fcc6fc87d (diff)
allow for overriding the owner/group/mode of dovecot config files
In some cases, the default permissions will not work. For example, if you are using postfix's pipe to send things through dovecot's LDA with sieve for filtering, you will get this: dovecot-lda: Permission denied doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 17: Couldn't open include file /etc/dovecot/conf.d/90-sieve.conf: Permission denied that is because, by default, the process runs as user 'mail'
Diffstat (limited to 'manifests')
-rw-r--r--manifests/config/file.pp22
1 files changed, 20 insertions, 2 deletions
diff --git a/manifests/config/file.pp b/manifests/config/file.pp
index fe93500..39c6cc3 100644
--- a/manifests/config/file.pp
+++ b/manifests/config/file.pp
@@ -2,7 +2,10 @@ define dovecot::config::file (
$ensure = present,
$source = 'absent',
$content = 'absent',
- $destination = 'absent'
+ $destination = 'absent',
+ $mode = 'absent',
+ $owner = 'absent',
+ $group = 'absent'
)
{
@@ -15,13 +18,28 @@ define dovecot::config::file (
default => $destination
}
+ $real_mode = $mode ? {
+ 'absent' => 0640,
+ default => $mode
+ }
+
+ $real_owner = $owner ? {
+ 'absent' => root,
+ default => $owner
+ }
+
+ $real_group = $group ? {
+ 'absent' => 0,
+ default => $group
+ }
+
# the $name variable is set to dovecot_${name}, but the actual filename will
# be set to $name
file { "dovecot_${name}":
ensure => $ensure,
path => $real_destination,
notify => Service[dovecot],
- owner => root, group => 0, mode => 0640;
+ owner => $real_owner, group => $real_group, mode => $real_mode;
}
# the $content variable is 'absent' by default, so if the user doesn't