2022-08-29 11:42:13 -06:00
|
|
|
#!/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
|
|
|
|
source ../../env/vars
|
|
|
|
TOKENS_FILE='./tokens'
|
|
|
|
|
|
|
|
# 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}" ]
|
|
|
|
then ../../lib/wg/user/del "${pubkey}"
|
|
|
|
else ../../lib/fed/del "${server_admin}" "${pubkey}" "${server_secret}"
|
|
|
|
fi
|
|
|
|
done <../../env/servers
|
|
|
|
|
|
|
|
# Update nameserver
|
|
|
|
../../lib/ns/update/del "${domain}" "${ipv4}" "${ipv6}"
|
|
|
|
|
|
|
|
# Delete SSL certs
|
|
|
|
sudo ../../lib/ssl/peer/del "${hostname}" "${username}"
|