# User setup
{ config, ... }:
let
  my = config.my;
in
{
  users.mutableUsers = false; # I want it to be declarative.

  # Define user accounts and passwords.
  users.users.root.hashedPassword = my.secrets.users.root.hashedPassword;
  users.users.ambroisie = {
    hashedPassword = my.secrets.users.ambroisie.hashedPassword;
    description = "Bruno BELANYI";
    isNormalUser = true;
    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
    openssh.authorizedKeys.keys = with builtins; let
      keyDir = ./ssh;
      contents = readDir keyDir;
      names = attrNames contents;
      files = filter (name: contents.${name} == "regular") names;
      keys = map (basename: readFile (keyDir + "/${basename}")) files;
    in
    keys;
  };
}