Merge pull request #5982 from robberer/pkgs/openldap

openldap: add dataDir, use cfg.user and cfg.group to run slapd

+19 -9
+19 -9
nixos/modules/services/databases/openldap.nix
··· 20 services.openldap = { 21 22 enable = mkOption { 23 default = false; 24 description = " 25 Whether to enable the ldap server. ··· 43 }; 44 45 user = mkOption { 46 default = "openldap"; 47 description = "User account under which slapd runs."; 48 }; 49 50 group = mkOption { 51 default = "openldap"; 52 description = "Group account under which slapd runs."; 53 }; 54 55 extraConfig = mkOption { 56 default = ""; 57 description = " 58 sldapd.conf configuration ··· 76 preStart = '' 77 mkdir -p /var/run/slapd 78 chown -R ${cfg.user}:${cfg.group} /var/run/slapd 79 - mkdir -p /var/db/openldap 80 - chown -R ${cfg.user}:${cfg.group} /var/db/openldap 81 ''; 82 - serviceConfig.ExecStart = "${openldap}/libexec/slapd -u openldap -g openldap -d 0 -f ${configFile}"; 83 }; 84 85 - users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton 86 - { name = "openldap"; 87 group = cfg.group; 88 uid = config.ids.uids.openldap; 89 - }); 90 91 - users.extraGroups = optionalAttrs (cfg.group == "openldap") (singleton 92 - { name = "openldap"; 93 gid = config.ids.gids.openldap; 94 - }); 95 96 }; 97 }
··· 20 services.openldap = { 21 22 enable = mkOption { 23 + type = types.bool; 24 default = false; 25 description = " 26 Whether to enable the ldap server. ··· 44 }; 45 46 user = mkOption { 47 + type = types.string; 48 default = "openldap"; 49 description = "User account under which slapd runs."; 50 }; 51 52 group = mkOption { 53 + type = types.string; 54 default = "openldap"; 55 description = "Group account under which slapd runs."; 56 }; 57 58 + dataDir = mkOption { 59 + type = types.string; 60 + default = "/var/db/openldap"; 61 + description = "The database directory."; 62 + }; 63 + 64 extraConfig = mkOption { 65 + type = types.lines; 66 default = ""; 67 description = " 68 sldapd.conf configuration ··· 86 preStart = '' 87 mkdir -p /var/run/slapd 88 chown -R ${cfg.user}:${cfg.group} /var/run/slapd 89 + mkdir -p ${cfg.dataDir} 90 + chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} 91 ''; 92 + serviceConfig.ExecStart = "${openldap}/libexec/slapd -u ${cfg.user} -g ${cfg.group} -d 0 -f ${configFile}"; 93 }; 94 95 + users.extraUsers.openldap = 96 + { name = cfg.user; 97 group = cfg.group; 98 uid = config.ids.uids.openldap; 99 + }; 100 101 + users.extraGroups.openldap = 102 + { name = cfg.group; 103 gid = config.ids.gids.openldap; 104 + }; 105 106 }; 107 }