mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2024-11-22 23:27:45 +01:00
Added checking if peers removed directly from config file by not from dashboard, and fixed DNS did not get check from editing peers
This commit is contained in:
parent
f72b405f6d
commit
6828b905ef
@ -225,6 +225,7 @@ def get_all_peers_data(config_name):
|
|||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
# Update database since V2.2
|
# Update database since V2.2
|
||||||
|
print("looking for "+search[0]['id'])
|
||||||
update_db = {}
|
update_db = {}
|
||||||
if "private_key" not in search[0]:
|
if "private_key" not in search[0]:
|
||||||
update_db['private_key'] = ''
|
update_db['private_key'] = ''
|
||||||
@ -233,6 +234,15 @@ def get_all_peers_data(config_name):
|
|||||||
if "endpoint_allowed_ip" not in search[0]:
|
if "endpoint_allowed_ip" not in search[0]:
|
||||||
update_db['endpoint_allowed_ip'] = '0.0.0.0/0'
|
update_db['endpoint_allowed_ip'] = '0.0.0.0/0'
|
||||||
db.update(update_db, peers.id == i['PublicKey'])
|
db.update(update_db, peers.id == i['PublicKey'])
|
||||||
|
# Remove peers no longer exist in WireGuard configuration file
|
||||||
|
db_key = list(map(lambda a: a['id'], db.all()))
|
||||||
|
wg_key = list(map(lambda a: a['PublicKey'], conf_peer_data['Peers']))
|
||||||
|
for i in db_key:
|
||||||
|
if i not in wg_key:
|
||||||
|
db.remove(peers.id == i)
|
||||||
|
print(db_key)
|
||||||
|
print(wg_key)
|
||||||
|
|
||||||
|
|
||||||
tic = time.perf_counter()
|
tic = time.perf_counter()
|
||||||
get_latest_handshake(config_name, db, peers)
|
get_latest_handshake(config_name, db, peers)
|
||||||
@ -765,7 +775,6 @@ def add_peer(config_name):
|
|||||||
keys = get_conf_peer_key(config_name)
|
keys = get_conf_peer_key(config_name)
|
||||||
if len(public_key) == 0 or len(DNS) == 0 or len(allowed_ips) == 0 or len(endpoint_allowed_ip) == 0:
|
if len(public_key) == 0 or len(DNS) == 0 or len(allowed_ips) == 0 or len(endpoint_allowed_ip) == 0:
|
||||||
return "Please fill in all required box."
|
return "Please fill in all required box."
|
||||||
|
|
||||||
if type(keys) != list:
|
if type(keys) != list:
|
||||||
return config_name + " is not running."
|
return config_name + " is not running."
|
||||||
if public_key in keys:
|
if public_key in keys:
|
||||||
@ -835,7 +844,8 @@ def save_peer_setting(config_name):
|
|||||||
check_ip = checkAllowedIP(id, allowed_ip, config_name)
|
check_ip = checkAllowedIP(id, allowed_ip, config_name)
|
||||||
if not checkIpWithRange(endpoint_allowed_ip):
|
if not checkIpWithRange(endpoint_allowed_ip):
|
||||||
return jsonify({"status": "failed", "msg": "Endpoint Allowed IPs format is incorrect."})
|
return jsonify({"status": "failed", "msg": "Endpoint Allowed IPs format is incorrect."})
|
||||||
|
if not checkIp(DNS):
|
||||||
|
return jsonify({"status": "failed", "msg": "DNS format is incorrect."})
|
||||||
if private_key != "":
|
if private_key != "":
|
||||||
check_key = checkKeyMatch(private_key, id, config_name)
|
check_key = checkKeyMatch(private_key, id, config_name)
|
||||||
if check_key['status'] == "failed":
|
if check_key['status'] == "failed":
|
||||||
@ -843,15 +853,13 @@ def save_peer_setting(config_name):
|
|||||||
if check_ip['status'] == "failed":
|
if check_ip['status'] == "failed":
|
||||||
return jsonify(check_ip)
|
return jsonify(check_ip)
|
||||||
try:
|
try:
|
||||||
if allowed_ip == "":
|
if allowed_ip == "": allowed_ip = '""'
|
||||||
allowed_ip = '""'
|
|
||||||
change_ip = subprocess.check_output('wg set ' + config_name + " peer " + id + " allowed-ips " + allowed_ip,
|
change_ip = subprocess.check_output('wg set ' + config_name + " peer " + id + " allowed-ips " + allowed_ip,
|
||||||
shell=True, stderr=subprocess.STDOUT)
|
shell=True, stderr=subprocess.STDOUT)
|
||||||
save_change_ip = subprocess.check_output('wg-quick save ' + config_name, shell=True,
|
save_change_ip = subprocess.check_output('wg-quick save ' + config_name, shell=True,
|
||||||
stderr=subprocess.STDOUT)
|
stderr=subprocess.STDOUT)
|
||||||
if change_ip.decode("UTF-8") != "":
|
if change_ip.decode("UTF-8") != "":
|
||||||
return jsonify({"status": "failed", "msg": change_ip.decode("UTF-8")})
|
return jsonify({"status": "failed", "msg": change_ip.decode("UTF-8")})
|
||||||
|
|
||||||
db.update(
|
db.update(
|
||||||
{"name": name, "private_key": private_key, "DNS": DNS, "endpoint_allowed_ip": endpoint_allowed_ip},
|
{"name": name, "private_key": private_key, "DNS": DNS, "endpoint_allowed_ip": endpoint_allowed_ip},
|
||||||
peers.id == id)
|
peers.id == id)
|
||||||
|
@ -67,8 +67,6 @@ $("#save_peer").click(function(){
|
|||||||
for (var i = 0; i < data_list.length; i++){
|
for (var i = 0; i < data_list.length; i++){
|
||||||
data_list[i].attr("disabled", "disabled")
|
data_list[i].attr("disabled", "disabled")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: "POST",
|
method: "POST",
|
||||||
url: "/add_peer/"+conf,
|
url: "/add_peer/"+conf,
|
||||||
@ -248,7 +246,7 @@ $("#save_peer_setting").click(function (){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}else{
|
}else{
|
||||||
$("#setting_peer_alert").html("Please fill in all required box.");
|
$("#setting_peer_alert").html("Please fill in all required box.");
|
||||||
$("#setting_peer_alert").removeClass("d-none");
|
$("#setting_peer_alert").removeClass("d-none");
|
||||||
$("#save_peer_setting").removeAttr("disabled")
|
$("#save_peer_setting").removeAttr("disabled")
|
||||||
|
Loading…
Reference in New Issue
Block a user