Fixed frontend, final cleanup

master
Keith Irwin 2022-11-02 13:16:16 -06:00
parent d049e50868
commit e5c2f3161a
Signed by: ki9
GPG Key ID: DF773B3F4A88DA86
3 changed files with 14 additions and 8 deletions

View File

@ -10,7 +10,11 @@
# 6: Servers file not found
# 7: Token file not found
# 8: Invalid token
# 9: Username not provided
# 9: Username or usernumber not provided
# 10: Wireguard failed to get peers
# 11: Failed to find user's peers
# 12: Failed to get domains for user's peers
# 13: Failed to delete a peer from wireguard server
CONFIG_FILE='/etc/wgapi/config'
SERVERS_FILE='/etc/wgapi/servers'
@ -63,7 +67,7 @@ fi
if ! wg_output="$(sudo /usr/bin/wg show "${TLD}" allowed-ips)"; then
printf 'ERROR! Wireguard failed!\n' >>"${LOGFILE}"
printf 'Wireguard failed!\n' | "${LIB_DIR}/http_res" 500
exit 5
exit 10
fi
# Filter out the user's
@ -71,14 +75,14 @@ user_peers="$(grep "${IPV4_NET%.*.*}.${usernumber}." <<<"${wg_output}" 2>/dev/nu
if [ "${user_peers}" == "" ]; then
printf "ERROR! Couldn't find any peers for %s!\n" "${IPV4_NET%.*.*}.${usernumber}." >>"${LOGFILE}"
printf 'No user peers found for %s!\n' "${IPV4_NET%.*.*}.${usernumber}" | "${LIB_DIR}/http_res" 404
exit 14
exit 11
fi
# Get user peer domains
if ! peers="$("${LIB_DIR}/ips_to_peers_rdns" tsv <<<"${user_peers}")"; then
printf 'ERROR! Failed to retrieve peers for %s!\n' "${${IPV4_NET%.*.*}.${usernumber}}" >>"${LOGFILE}"
printf 'Failed to retrieve peers for %s!\n' "${IPV4_NET%.*.*}.${usernumber}" | "${LIB_DIR}/http_res" 500
exit 10
exit 12
fi
# Run this function in parallel in the while loop below
@ -94,11 +98,11 @@ for_server_do() {
printf 'ERROR! Failed to delete %s from local wireguard server!\n' "${domain}" >>"${LOGFILE}"
# TODO: Send a 500 error
# TODO: clear existing progress
exit 15
exit 13
fi
# TODO Add federated peer
# TODO Delete federated peer
#else
# if "${LIB_DIR}/fed_peer_add" "${server_admin}" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128" "${server_secret}"; then
# if "${LIB_DIR}/fed_peer_del" "${server_admin}" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128" "${server_secret}"; then
# printf 'Deleted %s from remote wireguard server %s.\n' "${domain}" "${server_hostname}" >>"${LOGFILE}"
# else
# printf 'ERROR! Failed to delete %s from remote wireguard server %s!\n' "${domain}" "${server_hostname}" >>"${LOGFILE}"

View File

@ -10,6 +10,7 @@
[X] Admin user add/delete frontend
[X] admin user adding backend
[ ] admin user deleting backend
[ ] Replace ns_lookup_rdns with ns_lookup_rxfr where applicable
[ ] Prevent deleting user's only peer
[ ] Let users download ssl certs
[ ] Show QR code with new config

View File

@ -200,7 +200,7 @@ function PeerList() {
const res = await fetch(url, {method: 'DELETE'})
if (res.ok) self.peers.remove(peer)
else {
if (res.status===404) {
if (res.status===202) {
self.users.remove(user)
self.peers().forEach( (peer)=> {
if ( peer.domain.split('.')[1] === user.name)
@ -215,6 +215,7 @@ function PeerList() {
} finally { user.isDeleting(false) }
}
} catch (err) {
if (err) console.error(err)
alert(`Failed to contact the server. Are you online?`)
} finally {
user.isDeleting(false)