Merge pull request #9 from UGA-Innovation-Factory/copilot/sub-pr-7-again
Fix user attribute merging to preserve all fields from users.nix
This commit is contained in:
@@ -62,7 +62,9 @@ let
|
|||||||
);
|
);
|
||||||
|
|
||||||
# externalUserOptions only contains users that actually have options defined
|
# 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
|
# Submodule defining the structure of a user account
|
||||||
userSubmodule = lib.types.submodule {
|
userSubmodule = lib.types.submodule {
|
||||||
@@ -166,11 +168,11 @@ in
|
|||||||
# External options take precedence over users.nix (which uses lib.mkDefault)
|
# External options take precedence over users.nix (which uses lib.mkDefault)
|
||||||
ugaif.users = lib.mapAttrs (
|
ugaif.users = lib.mapAttrs (
|
||||||
name: user:
|
name: user:
|
||||||
{
|
user
|
||||||
|
// {
|
||||||
description = lib.mkDefault (user.description or null);
|
description = lib.mkDefault (user.description or null);
|
||||||
shell = lib.mkDefault (user.shell or null);
|
shell = lib.mkDefault (user.shell or null);
|
||||||
extraGroups = lib.mkDefault (user.extraGroups or [ ]);
|
extraGroups = lib.mkDefault (user.extraGroups or [ ]);
|
||||||
external = user.external or null;
|
|
||||||
}
|
}
|
||||||
// (externalUserOptions.${name} or { })
|
// (externalUserOptions.${name} or { })
|
||||||
) accounts;
|
) accounts;
|
||||||
|
|||||||
Reference in New Issue
Block a user