about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-01-10 07:07:26 +0300
committerNikolay Amiantov <ab@fmap.me>2016-01-21 12:53:26 +0300
commit5b5e2c05c41de4d0aa298eab133923f2feb851a2 (patch)
tree882e369e07376ba1095b4c5875f6a76ab7c44323 /nixos
parentb781cf1a12ce77fd29ec0656bb04895b0cdaecf7 (diff)
nixos/dovecot: add mail user and group
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/mail/dovecot.nix16
1 files changed, 15 insertions, 1 deletions
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index efe6a3beb9ae7..11e8b26c75ef1 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -27,6 +27,8 @@ let
 
     ''
       default_internal_user = ${cfg.user}
+      ${optionalString (cfg.mailUser != null) "mail_uid = ${cfg.mailUser}"}
+      ${optionalString (cfg.mailGroup != null) "mail_gid = ${cfg.mailGroup}"}
 
       mail_location = ${cfg.mailLocation}
 
@@ -135,6 +137,18 @@ in
       '';
     };
 
+    mailUser = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      description = "Default user to store mail for virtual users.";
+    };
+
+    mailGroup = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      description = "Default group to store mail for virtual users.";
+    };
+
     modules = mkOption {
       type = types.listOf types.package;
       default = [];
@@ -245,7 +259,7 @@ in
           fi
            ${pkgs.dovecot_pigeonhole}/bin/sievec '${stateDir}/sieve/${to}'
         '') cfg.sieveScripts)}
-        chown -R '${cfg.user}:${cfg.group}' ${stateDir}/sieve
+        chown -R '${cfg.mailUser}:${cfg.mailGroup}' '${stateDir}/sieve'
       '';
     };