migrate clanmodules/{user,root}-password to clanServices/users

Move the functionality of both modules into a new clanService.
root-password was previously just a special case of user-password. This
migrates it into a deduplicated clan service and adds checks
This commit is contained in:
pinpox
2025-06-10 09:27:59 +02:00
parent 27998d777a
commit db5e23e701
22 changed files with 277 additions and 12 deletions

View File

@@ -1,7 +1,7 @@
---
description = "Automatically generates and configures a password for the specified user account."
categories = ["System"]
features = ["inventory"]
features = ["inventory", "deprecated"]
---
If setting the option prompt to true, the user will be prompted to type in their desired password.

View File

@@ -1,5 +1,4 @@
{
_class,
pkgs,
config,
lib,
@@ -34,13 +33,8 @@ in
};
clan.core.vars.generators.user-password = {
files.user-password-hash =
{
neededFor = "users";
}
// (lib.optionalAttrs (_class == "nixos") {
restartUnits = lib.optional (config.services.userborn.enable) "userborn.service";
});
files.user-password-hash.neededFor = "users";
files.user-password-hash.restartUnits = lib.optional (config.services.userborn.enable) "userborn.service";
prompts.user-password.type = "hidden";
prompts.user-password.persist = true;
@@ -58,7 +52,7 @@ in
if [[ -n "''${prompt_value-}" ]]; then
echo "$prompt_value" | tr -d "\n" > "$out"/user-password
else
xkcdpass --numwords 3 --delimiter - --count 1 | tr -d "\n" > "$out"/user-password
xkcdpass --numwords 4 --delimiter - --count 1 | tr -d "\n" > "$out"/user-password
fi
mkpasswd -s -m sha-512 < "$out"/user-password | tr -d "\n" > "$out"/user-password-hash
'';