Require LDAP username on first VPN launch

This commit is contained in:
2026-05-26 14:30:21 +03:00
parent f2d4f8e04b
commit b8ddf8f22d
6 changed files with 210 additions and 26 deletions

View File

@@ -3,10 +3,17 @@ set -eu
INSTALL_BIN_DIR="${LEMANA_VPN_BIN_DIR:-$HOME/bin}"
CONFIG_DIR="${LEMANA_VPN_CONFIG_DIR:-$HOME/.config/lemana-vpn}"
CONFIG_FILE="$CONFIG_DIR/env"
OC_CONFIG_DIR="${OPENCONNECT_LITE_CONFIG_DIR:-$HOME/.config/openconnect-lite}"
OC_VENV="${LEMANA_VPN_OC_VENV:-$HOME/.local/pipx/venvs/openconnect-lite}"
DNS_CLEANUP="${LEMANA_VPN_DNS_CLEANUP:-/usr/local/sbin/lemana-vpn-dns-cleanup}"
USERNAME="${LEMANA_VPN_USERNAME:-60103293}"
_ENV_LEMANA_VPN_USERNAME="${LEMANA_VPN_USERNAME+x}${LEMANA_VPN_USERNAME-}"
if [ -f "$CONFIG_FILE" ]; then
# shellcheck disable=SC1090
. "$CONFIG_FILE"
fi
[ "${_ENV_LEMANA_VPN_USERNAME%"${_ENV_LEMANA_VPN_USERNAME#?}"}" = "x" ] && LEMANA_VPN_USERNAME="${_ENV_LEMANA_VPN_USERNAME#?}"
USERNAME="${LEMANA_VPN_USERNAME:-}"
APP_DIR="${LEMANA_VPN_APP_DIR:-$HOME/Applications/LemanaVPN.app}"
LAUNCH_AGENT="$HOME/Library/LaunchAgents/ru.dokops.LemanaVPN.plist"
DRY_RUN=0
@@ -203,15 +210,23 @@ remove_keychain_entries() {
fi
log_step "Удаляю VPN-записи из macOS Keychain"
log_detail "Удаляются только записи openconnect-lite для пользователя $USERNAME и кэш Bitwarden Lemana VPN."
if [ -n "$USERNAME" ]; then
log_detail "Удаляются только записи openconnect-lite для пользователя $USERNAME и кэш Bitwarden Lemana VPN."
else
log_detail "LDAP username не задан; удаляется только кэш Bitwarden Lemana VPN."
fi
if [ "$DRY_RUN" -eq 1 ]; then
run security delete-generic-password -s openconnect-lite -a "$USERNAME"
run security delete-generic-password -s openconnect-lite -a "totp/$USERNAME"
if [ -n "$USERNAME" ]; then
run security delete-generic-password -s openconnect-lite -a "$USERNAME"
run security delete-generic-password -s openconnect-lite -a "totp/$USERNAME"
fi
run security delete-generic-password -s vpn-lemanapro -a bw-session
run security delete-generic-password -s vpn-lemanapro -a bw-master
else
security delete-generic-password -s openconnect-lite -a "$USERNAME" >/dev/null 2>&1 || true
security delete-generic-password -s openconnect-lite -a "totp/$USERNAME" >/dev/null 2>&1 || true
if [ -n "$USERNAME" ]; then
security delete-generic-password -s openconnect-lite -a "$USERNAME" >/dev/null 2>&1 || true
security delete-generic-password -s openconnect-lite -a "totp/$USERNAME" >/dev/null 2>&1 || true
fi
security delete-generic-password -s vpn-lemanapro -a bw-session >/dev/null 2>&1 || true
security delete-generic-password -s vpn-lemanapro -a bw-master >/dev/null 2>&1 || true
fi