infrastructure/nixos/users/groups.nix
2024-05-21 14:29:08 -07:00

68 lines
1.3 KiB
Nix

{
config,
gensokyo-zone,
lib,
...
}: let
inherit (lib.attrsets) filterAttrs mapAttrsToList;
inherit (gensokyo-zone.lib) userIs;
in {
users.groups = {
peeps = {
gid = 8128;
};
kyuuto = {
gid = 8129;
};
kyuuto-peeps = {
gid = 8130;
members = mapAttrsToList (_: user: user.name) (
filterAttrs (_: user: userIs "peeps" user && userIs "kyuuto" user) config.users.users
);
};
steamaccount = {
gid = 8131;
};
beatsaber = {
gid = 8132;
};
editors = {
gid = 8133;
};
nixbuilder = {
gid = 8134;
members = mapAttrsToList (_: user: user.name) (
filterAttrs (_: user: userIs "peeps" user) config.users.users
);
};
admin = {
gid = 8126;
members = mapAttrsToList (_: user: user.name) (
filterAttrs (_: user: userIs "peeps" user && userIs "wheel" user) config.users.users
);
};
};
users.users = {
guest = {
uid = 8127;
group = "nogroup";
isSystemUser = true;
};
admin = {
uid = 8126;
group = "admin";
isSystemUser = true;
};
opl = {
uid = 8125;
group = "nogroup";
isSystemUser = true;
};
nixbld = {
uid = config.users.groups.nixbuilder.gid;
group = "nixbuilder";
isSystemUser = true;
};
};
}