wagon/back/api/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
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}"