This commit is contained in:
soraefir
2026-05-02 21:00:05 +02:00
parent 0baf9c1800
commit d2e35d3673

View File

@@ -1,21 +1,19 @@
{ config, lib, inputs, ... }: { config, lib, inputs, ... }:
let let
allUsers = lib.concatMap (peer: if peer ? users then peer.users else []) config.syscfg.peers; allUsers = lib.concatMap (peer: if peer.syscfg ? users then peer.syscfg.users else []) config.syscfg.peers;
groupedUsers = lib.groupBy (u: u.username) allUsers; groupedUsers = lib.groupBy (u: u.username) allUsers;
allowedUsernames = map (u: u.username) config.syscfg.users; allowedUsernames = map (u: u.username) config.syscfg.users;
activeUsers = lib.filterAttrs (name: _: lib.elem name allowedUsernames) groupedUsers; activeUsers = lib.filterAttrs (name: _: lib.elem name allowedUsernames) groupedUsers;
userConfigs = lib.mapAttrs (name: userList: {
isNormalUser = true;
openssh.authorizedKeys.keys = lib.unique (map (u: u.pubssh) userList);
}) groupedUsers;
in { in {
imports = [ ./hardware.nix ]; imports = [ ./hardware.nix ];
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.ports = [ 422 ];
users.users = lib.mapAttrs (name: userList: { users.users = lib.mapAttrs (name: userList: {
openssh.authorizedKeys.keys = lib.unique (map (u: u.pubssh) userList); openssh.authorizedKeys.keys = lib.unique (map (u: u.pubssh) userList);
}) activeUsers // { }) activeUsers
// {
root = {openssh.authorizedKeys.keys = [];}; root = {openssh.authorizedKeys.keys = [];};
}; };
} }