2021-11-15 10:02:05 +00:00
|
|
|
{ pkgs, config, ... }:
|
2021-11-15 10:29:20 +00:00
|
|
|
let
|
|
|
|
cfg = config.services.userdata;
|
|
|
|
in
|
2021-11-15 10:02:05 +00:00
|
|
|
{
|
|
|
|
users.mutableUsers = false;
|
|
|
|
users = {
|
|
|
|
users = {
|
2021-11-15 10:29:20 +00:00
|
|
|
"${cfg.username}" = {
|
2021-11-15 10:02:05 +00:00
|
|
|
isNormalUser = true;
|
2021-11-15 10:29:20 +00:00
|
|
|
hashedPassword = cfg.hashedMasterPassword;
|
2021-11-22 16:53:43 +00:00
|
|
|
openssh.authorizedKeys.keys = cfg.sshKeys;
|
2021-11-15 10:02:05 +00:00
|
|
|
};
|
2021-11-15 10:29:20 +00:00
|
|
|
} // builtins.listToAttrs (builtins.map
|
|
|
|
(user: {
|
|
|
|
name = "${user.username}";
|
|
|
|
value = {
|
|
|
|
isNormalUser = true;
|
|
|
|
hashedPassword = user.hashedPassword;
|
2022-07-19 12:18:46 +00:00
|
|
|
openssh.authorizedKeys.keys = (if user ? sshKeys then user.sshKeys else [ ]);
|
2021-11-15 10:29:20 +00:00
|
|
|
};
|
|
|
|
})
|
|
|
|
cfg.users);
|
2021-11-15 10:02:05 +00:00
|
|
|
};
|
2023-03-28 16:31:02 +00:00
|
|
|
selfprivacy.ldap = {
|
|
|
|
enable = true;
|
|
|
|
domain = "${cfg.domain}";
|
|
|
|
rootUser = "${cfg.username}";
|
|
|
|
rootHashedPassword = cfg.hashedMasterPassword;
|
|
|
|
users = [
|
|
|
|
(builtins.map
|
|
|
|
(user: {
|
|
|
|
username = "${user.username}";
|
|
|
|
email = "${user.username}@${cfg.domain}";
|
|
|
|
hashedPassword = user.hashedPassword;
|
|
|
|
groups = [ "gitea" "nextcloud" "pleroma" ];
|
|
|
|
})
|
|
|
|
cfg.users)
|
|
|
|
];
|
|
|
|
};
|
2021-11-15 10:02:05 +00:00
|
|
|
}
|