|
|
|
@ -7,7 +7,7 @@ let |
|
|
|
|
options = { |
|
|
|
|
name = mkOption { type = str; description = "The name of the user"; }; |
|
|
|
|
cfg = mkOption { description = "The user configuration"; }; |
|
|
|
|
pubkeys = mkOption { type = listOf path; |
|
|
|
|
pubkeys = mkOption { type = listOf str; |
|
|
|
|
default = []; |
|
|
|
|
description = "Set of ssh public keys to include"; }; |
|
|
|
|
}; |
|
|
|
@ -28,9 +28,9 @@ in |
|
|
|
|
|
|
|
|
|
config = { |
|
|
|
|
users.mutableUsers = false; |
|
|
|
|
users.users = builtins.listToAttrs (map ({ name, cfg, ... }: |
|
|
|
|
users.users = builtins.listToAttrs (map ({ name, cfg, pubkeys }: |
|
|
|
|
nameValuePair "${name}" |
|
|
|
|
(cfg // { group = "${name}"; })) config.libkookie.activeUsers); |
|
|
|
|
(cfg // { group = "${name}"; openssh.authorizedKeys.keys = pubkeys; })) config.libkookie.activeUsers); |
|
|
|
|
|
|
|
|
|
users.groups = builtins.listToAttrs (map ({ name, ... }: |
|
|
|
|
nameValuePair "${name}" {}) config.libkookie.activeUsers); |
|
|
|
|