From 3ef36c4873a43fe92483970c49d4daab12e967dc Mon Sep 17 00:00:00 2001 From: Noah Masur <7386960+nmasur@users.noreply.github.com> Date: Mon, 7 Oct 2024 19:23:35 -0400 Subject: [PATCH] remove magic prefix from ldap script --- modules/common/shell/work.nix | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/modules/common/shell/work.nix b/modules/common/shell/work.nix index 2b79d6d..d371882 100644 --- a/modules/common/shell/work.nix +++ b/modules/common/shell/work.nix @@ -12,34 +12,36 @@ home.packages = let ldap_scheme = "ldaps"; - magic_number = "2"; - magic_end_seq = "corp"; magic_prefix = "take"; - ldap_host = "${magic_prefix}${magic_number}.t${magic_number}.${magic_end_seq}"; ldap_port = 636; - ldap_dc_1 = "${magic_prefix}${magic_number}"; - ldap_dc_2 = "t${magic_number}"; - ldap_dc_3 = magic_end_seq; ldap_script = pkgs.writeShellScriptBin "ldap" '' - # if ! [ "$LDAP_HOST" ]; then - # echo "No LDAP_HOST specified!" - # exit 1 - # fi + if ! [ "$LDAP_HOST" ]; then + echo "No LDAP_HOST specified!" + exit 1 + fi SEARCH_FILTER="$@" ldapsearch -LLL \ -B -o ldif-wrap=no \ - -H "${ldap_scheme}://${ldap_host}:${builtins.toString ldap_port}" \ - -D "${pkgs.lib.toUpper magic_prefix}${magic_number}\\${pkgs.lib.toLower config.user}" \ - -w "$(${pkgs._1password}/bin/op item get T${magic_number} --fields label=password)" \ - -b "DC=${ldap_dc_1},DC=${ldap_dc_2},DC=${ldap_dc_3}" \ - -s "sub" -x "(cn=$SEARCH_FILTER)" \ + -H "${ldap_scheme}://''${LDAP_HOST}:${builtins.toString ldap_port}" \ + -D "${pkgs.lib.toUpper magic_prefix}2\\${pkgs.lib.toLower config.user}" \ + -w "$(${pkgs._1password}/bin/op item get T2 --fields label=password)" \ + -b "dc=''${LDAP_HOST//./,dc=}" \ + -s "sub" -x "(cn=''${SEARCH_FILTER})" \ | jq --slurp \ --raw-input 'split("\n\n")|map(split("\n")|map(select(.[0:1]!="#" and length>0)) |select(length > 0)|map(capture("^(?[^:]*:?): *(?.*)") |if .key[-1:.key|length] == ":" then .key=.key[0:-1]|.value=(.value|@base64d) else . end)| group_by(.key) | map({key:.[0].key,value:(if .|length > 1 then [.[].value] else .[].value end)}) | from_entries)' | jq -r 'del(.[].thumbnailPhoto)' ''; ldapm_script = pkgs.writeShellScriptBin "ldapm" '' + if ! [ "$LDAP_HOST" ]; then + echo "No LDAP_HOST specified!" + exit 1 + fi ${ldap_script}/bin/ldap "$@" | jq '[ .[].memberOf] | add' ''; ldapg_script = pkgs.writeShellScriptBin "ldapg" '' + if ! [ "$LDAP_HOST" ]; then + echo "No LDAP_HOST specified!" + exit 1 + fi ${ldap_script}/bin/ldap "$@" | jq '[ .[].member] | add' ''; in