nixos/users: Populate group members option
This change makes it so that accessing config.users.groups.*.members isn't empty by default, but instead contains all the users whose `extraGroups` includes that group, allowing fancy things like { config, ... }: { users.groups.libvirt.members = config.users.groups.wheel.members; } to add all users in the wheel group to the libvirt group
This commit is contained in:
parent
88e451423f
commit
ea00f991c0
|
@ -324,7 +324,7 @@ let
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
groupOpts = { name, ... }: {
|
groupOpts = { name, config, ... }: {
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
|
@ -358,6 +358,10 @@ let
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
name = mkDefault name;
|
name = mkDefault name;
|
||||||
|
|
||||||
|
members = mapAttrsToList (n: u: u.name) (
|
||||||
|
filterAttrs (n: u: elem config.name u.extraGroups) cfg.users
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -419,12 +423,7 @@ let
|
||||||
initialPassword initialHashedPassword;
|
initialPassword initialHashedPassword;
|
||||||
shell = utils.toShellPath u.shell;
|
shell = utils.toShellPath u.shell;
|
||||||
}) cfg.users;
|
}) cfg.users;
|
||||||
groups = mapAttrsToList (n: g:
|
groups = attrValues cfg.groups;
|
||||||
{ inherit (g) name gid;
|
|
||||||
members = g.members ++ (mapAttrsToList (n: u: u.name) (
|
|
||||||
filterAttrs (n: u: elem g.name u.extraGroups) cfg.users
|
|
||||||
));
|
|
||||||
}) cfg.groups;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
systemShells =
|
systemShells =
|
||||||
|
|
Loading…
Reference in a new issue