wagon/back/srv/dashboard/del

37 lines
1.1 KiB
Plaintext
Raw Normal View History

#!/bin/bash
# FILE: wgapi:back/api/dashboard/del
# DESCRIPTION: Del a peer
# USAGE: del ip querystring
fail() {
printf "Status: 500 Internal Server Error\nContent-Type: text/plain\n\n${1}\n"
exit
}
[ "$#" == "2" ] || fail
2022-09-06 20:57:41 -06:00
CONFIG_FILE='/etc/wgapi/config'
source "${CONFIG_FILE}"
# Check token
saved_token=$(grep "${1}" "${TOKENS_FILE}" | cut -f2)
[ "${saved_token}" == "" ] && fail "Invalid token"
printf "${2}" | grep "t=${saved_token}" || fail "Invalid token"
# Parse pubkey
pubkey="$(printf ${2#?*} | tr '&' ' ' | grep -oP 'k=[^\s]*' | cut -d'=' -f2)"
# Respond to user
printf "Status: 202 Accepted\nContent-Type: text/plain\n\nDeleted\n"
while read server_hostname server_ipv4 server_ipv6 server_pubkey server_endpoint server_admin server_secret; do
if [ "${server_hostname}" == "${LOCAL_SERVER}" ]
2022-09-06 20:57:41 -06:00
then "${LIB_DIR}/wg_user_del" "${pubkey}"
else "${LIB_DIR}/fed_del" "${server_admin}" "${pubkey}" "${server_secret}"
fi
2022-09-06 20:57:41 -06:00
done <${SERVERS_FILE}
# Update nameserver
2022-09-06 20:57:41 -06:00
"${LIB_DIR}/ns_update_del" "${domain}" "${ipv4}" "${ipv6}"
# Delete SSL certs
2022-09-06 20:57:41 -06:00
sudo "${LIB_DIR}/ssl_peer_del" "${hostname}" "${username}"