chore: Fix user merging logic to preserve all fields from users.nix
Co-authored-by: Jyumpp <11142390+Jyumpp@users.noreply.github.com>
This commit is contained in:
committed by
Hunter Halloran
parent
53b1eb58c1
commit
9be51b2589
@@ -62,7 +62,9 @@ let
|
||||
);
|
||||
|
||||
# externalUserOptions only contains users that actually have options defined
|
||||
externalUserOptions = lib.filterAttrs (_: moduleOptions: moduleOptions != { }) externalUserModuleOptions;
|
||||
externalUserOptions = lib.filterAttrs (
|
||||
_: moduleOptions: moduleOptions != { }
|
||||
) externalUserModuleOptions;
|
||||
|
||||
# Submodule defining the structure of a user account
|
||||
userSubmodule = lib.types.submodule {
|
||||
@@ -166,11 +168,11 @@ in
|
||||
# External options take precedence over users.nix (which uses lib.mkDefault)
|
||||
ugaif.users = lib.mapAttrs (
|
||||
name: user:
|
||||
{
|
||||
user
|
||||
// {
|
||||
description = lib.mkDefault (user.description or null);
|
||||
shell = lib.mkDefault (user.shell or null);
|
||||
extraGroups = lib.mkDefault (user.extraGroups or [ ]);
|
||||
external = user.external or null;
|
||||
}
|
||||
// (externalUserOptions.${name} or { })
|
||||
) accounts;
|
||||
|
||||
Reference in New Issue
Block a user