summary refs log tree commit diff
path: root/nixos/modules/services/databases
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2015-01-26 10:33:57 +0100
committerDomen Kožar <domen@dev.si>2015-01-26 10:33:57 +0100
commit9df1bdefef09000c797f514feeb750321dba6dbc (patch)
treeb59bfe4ca2cb1e49dfca192a479affd7b1468bab /nixos/modules/services/databases
parente16630d40ef5e74245f290e13f6932a11978d406 (diff)
parenta4af32eec3685bc1b1cd7807fbfdbe94813ee06e (diff)
downloadnixpkgs-9df1bdefef09000c797f514feeb750321dba6dbc.tar
nixpkgs-9df1bdefef09000c797f514feeb750321dba6dbc.tar.gz
nixpkgs-9df1bdefef09000c797f514feeb750321dba6dbc.tar.bz2
nixpkgs-9df1bdefef09000c797f514feeb750321dba6dbc.tar.lz
nixpkgs-9df1bdefef09000c797f514feeb750321dba6dbc.tar.xz
nixpkgs-9df1bdefef09000c797f514feeb750321dba6dbc.tar.zst
nixpkgs-9df1bdefef09000c797f514feeb750321dba6dbc.zip
Merge pull request #5982 from robberer/pkgs/openldap
openldap: add dataDir, use cfg.user and cfg.group to run slapd
Diffstat (limited to 'nixos/modules/services/databases')
-rw-r--r--nixos/modules/services/databases/openldap.nix28
1 files changed, 19 insertions, 9 deletions
diff --git a/nixos/modules/services/databases/openldap.nix b/nixos/modules/services/databases/openldap.nix
index 63e970a563e..29bdb201752 100644
--- a/nixos/modules/services/databases/openldap.nix
+++ b/nixos/modules/services/databases/openldap.nix
@@ -20,6 +20,7 @@ in
     services.openldap = {
 
       enable = mkOption {
+        type = types.bool;
         default = false;
         description = "
           Whether to enable the ldap server.
@@ -43,16 +44,25 @@ in
       };
 
       user = mkOption {
+        type = types.string;
         default = "openldap";
         description = "User account under which slapd runs.";
       };
 
       group = mkOption {
+        type = types.string;
         default = "openldap";
         description = "Group account under which slapd runs.";
       };
 
+      dataDir = mkOption {
+        type = types.string;
+        default = "/var/db/openldap";
+        description = "The database directory.";
+      };
+
       extraConfig = mkOption {
+        type = types.lines;
         default = "";
         description = "
           sldapd.conf configuration
@@ -76,22 +86,22 @@ in
       preStart = ''
         mkdir -p /var/run/slapd
         chown -R ${cfg.user}:${cfg.group} /var/run/slapd
-        mkdir -p /var/db/openldap
-        chown -R ${cfg.user}:${cfg.group} /var/db/openldap
+        mkdir -p ${cfg.dataDir}
+        chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}
       '';
-      serviceConfig.ExecStart = "${openldap}/libexec/slapd -u openldap -g openldap -d 0 -f ${configFile}";
+      serviceConfig.ExecStart = "${openldap}/libexec/slapd -u ${cfg.user} -g ${cfg.group} -d 0 -f ${configFile}";
     };
 
-    users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton
-      { name = "openldap";
+    users.extraUsers.openldap =
+      { name = cfg.user;
         group = cfg.group;
         uid = config.ids.uids.openldap;
-      });
+      };
 
-    users.extraGroups = optionalAttrs (cfg.group == "openldap") (singleton
-      { name = "openldap";
+    users.extraGroups.openldap =
+      { name = cfg.group;
         gid = config.ids.gids.openldap;
-     });
+      };
 
   };
 }