From e2f29e8f449c0c20a0d80dbc776ad9743eabbe1a Mon Sep 17 00:00:00 2001 From: niten Date: Wed, 6 Sep 2023 15:18:49 -0700 Subject: [PATCH] Just fuckin hack it --- lib/fudo/ldap.nix | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/lib/fudo/ldap.nix b/lib/fudo/ldap.nix index b7e7fbe..e4cb444 100644 --- a/lib/fudo/ldap.nix +++ b/lib/fudo/ldap.nix @@ -31,23 +31,35 @@ let else "/home/${user-opts.primary-group}/${username}"; - userLdif = base: name: group-map: opts: '' - dn: uid=${name},ou=members,${base} - uid: ${name} - objectClass: account - objectClass: shadowAccount - objectClass: posixAccount - cn: ${opts.common-name} - uidNumber: ${toString (opts.uid)} - gidNumber: ${toString (getUserGidNumber opts group-map)} - homeDirectory: ${mkHomeDir name opts} - description: ${opts.description} - shadowLastChange: 12230 - shadowMax: 99999 - shadowWarning: 7 - userPassword: ${opts.ldap-hashed-passwd} - mail: ${opts.email} - ''; + userLdif = base: name: group-map: opts: + let + # TODO: HORRIBLE HACK + domains = { + fudo = "fudo.org"; + selby = "selby.ca"; + informis = "informis.land"; + }; + email = if (hasAttr email opts) then + email + else + "${name}@${domains."${opts.primary-group}"}"; + in '' + dn: uid=${name},ou=members,${base} + uid: ${name} + objectClass: account + objectClass: shadowAccount + objectClass: posixAccount + cn: ${opts.common-name} + uidNumber: ${toString (opts.uid)} + gidNumber: ${toString (getUserGidNumber opts group-map)} + homeDirectory: ${mkHomeDir name opts} + description: ${opts.description} + shadowLastChange: 12230 + shadowMax: 99999 + shadowWarning: 7 + userPassword: ${opts.ldap-hashed-passwd} + mail: ${opts.email} + ''; systemUserLdif = base: name: opts: '' dn: cn=${name},${base}