mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2025-07-14 00:56:59 +00:00
Update dashboard.py
This commit is contained in:
parent
b5519a73fb
commit
e5850adfd7
104
src/dashboard.py
104
src/dashboard.py
@ -701,6 +701,7 @@ class WireguardConfiguration:
|
|||||||
|
|
||||||
subprocess.check_output(f"wg set {self.Name} peer {p['id']} allowed-ips {p['allowed_ip']}{f' preshared-key {uid}' if presharedKeyExist else ''}",
|
subprocess.check_output(f"wg set {self.Name} peer {p['id']} allowed-ips {p['allowed_ip']}{f' preshared-key {uid}' if presharedKeyExist else ''}",
|
||||||
shell=True, stderr=subprocess.STDOUT)
|
shell=True, stderr=subprocess.STDOUT)
|
||||||
|
if presharedKeyExist: os.remove(str(uid))
|
||||||
else:
|
else:
|
||||||
return ResponseObject(False, "Failed to allow access of peer " + i)
|
return ResponseObject(False, "Failed to allow access of peer " + i)
|
||||||
if not self.__wgSave():
|
if not self.__wgSave():
|
||||||
@ -980,21 +981,20 @@ class Peer:
|
|||||||
if not pubKey[0] or pubKey[1] != self.id:
|
if not pubKey[0] or pubKey[1] != self.id:
|
||||||
return ResponseObject(False, "Private key does not match with the public key")
|
return ResponseObject(False, "Private key does not match with the public key")
|
||||||
try:
|
try:
|
||||||
if len(preshared_key) > 0:
|
|
||||||
rd = random.Random()
|
rd = random.Random()
|
||||||
uid = uuid.UUID(int=rd.getrandbits(128), version=4)
|
uid = uuid.UUID(int=rd.getrandbits(128), version=4)
|
||||||
|
pskExist = len(preshared_key) > 0
|
||||||
|
|
||||||
|
if pskExist:
|
||||||
with open(f"{uid}", "w+") as f:
|
with open(f"{uid}", "w+") as f:
|
||||||
f.write(preshared_key)
|
f.write(preshared_key)
|
||||||
updatePsk = subprocess.check_output(
|
newAllowedIPs = allowed_ip.replace(" ", "")
|
||||||
f"wg set {self.configuration.Name} peer {self.id} preshared-key {uid}",
|
|
||||||
shell=True, stderr=subprocess.STDOUT)
|
|
||||||
os.remove(str(uid))
|
|
||||||
if len(updatePsk.decode().strip("\n")) != 0:
|
|
||||||
return ResponseObject(False,
|
|
||||||
"Update peer failed when updating Pre-Shared Key")
|
|
||||||
updateAllowedIp = subprocess.check_output(
|
updateAllowedIp = subprocess.check_output(
|
||||||
f'wg set {self.configuration.Name} peer {self.id} allowed-ips "{allowed_ip.replace(" ", "")}"',
|
f"wg set {self.configuration.Name} peer {self.id} allowed-ips {newAllowedIPs}{f' preshared-key {uid}' if pskExist else ''}",
|
||||||
shell=True, stderr=subprocess.STDOUT)
|
shell=True, stderr=subprocess.STDOUT)
|
||||||
|
|
||||||
|
if pskExist: os.remove(str(uid))
|
||||||
|
|
||||||
if len(updateAllowedIp.decode().strip("\n")) != 0:
|
if len(updateAllowedIp.decode().strip("\n")) != 0:
|
||||||
return ResponseObject(False,
|
return ResponseObject(False,
|
||||||
"Update peer failed when updating Allowed IPs")
|
"Update peer failed when updating Allowed IPs")
|
||||||
@ -1496,7 +1496,7 @@ def API_ValidateAPIKey():
|
|||||||
return ResponseObject(True)
|
return ResponseObject(True)
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/validateAuthentication', methods=["GET"])
|
@app.get(f'{APP_PREFIX}/api/validateAuthentication')
|
||||||
def API_ValidateAuthentication():
|
def API_ValidateAuthentication():
|
||||||
token = request.cookies.get("authToken") + ""
|
token = request.cookies.get("authToken") + ""
|
||||||
if token == "" or "username" not in session or session["username"] != token:
|
if token == "" or "username" not in session or session["username"] != token:
|
||||||
@ -1504,7 +1504,7 @@ def API_ValidateAuthentication():
|
|||||||
return ResponseObject(True)
|
return ResponseObject(True)
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/authenticate', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/authenticate')
|
||||||
def API_AuthenticateLogin():
|
def API_AuthenticateLogin():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
if DashboardConfig.APIAccessed:
|
if DashboardConfig.APIAccessed:
|
||||||
@ -1596,7 +1596,7 @@ def API_addWireguardConfiguration():
|
|||||||
return ResponseObject()
|
return ResponseObject()
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/toggleWireguardConfiguration/')
|
@app.get(f'{APP_PREFIX}/api/toggleWireguardConfiguration/')
|
||||||
def API_toggleWireguardConfiguration():
|
def API_toggleWireguardConfiguration():
|
||||||
configurationName = request.args.get('configurationName')
|
configurationName = request.args.get('configurationName')
|
||||||
if configurationName is None or len(
|
if configurationName is None or len(
|
||||||
@ -1606,15 +1606,12 @@ def API_toggleWireguardConfiguration():
|
|||||||
return ResponseObject(toggleStatus, msg, WireguardConfigurations[configurationName].Status)
|
return ResponseObject(toggleStatus, msg, WireguardConfigurations[configurationName].Status)
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/getDashboardConfiguration', methods=["GET"])
|
@app.get(f'{APP_PREFIX}/api/getDashboardConfiguration')
|
||||||
def API_getDashboardConfiguration():
|
def API_getDashboardConfiguration():
|
||||||
return ResponseObject(data=DashboardConfig.toJson())
|
return ResponseObject(data=DashboardConfig.toJson())
|
||||||
|
|
||||||
|
|
||||||
|
@app.post(f'{APP_PREFIX}/api/updateDashboardConfigurationItem')
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/updateDashboardConfigurationItem', methods=["POST"])
|
|
||||||
def API_updateDashboardConfigurationItem():
|
def API_updateDashboardConfigurationItem():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
if "section" not in data.keys() or "key" not in data.keys() or "value" not in data.keys():
|
if "section" not in data.keys() or "key" not in data.keys() or "value" not in data.keys():
|
||||||
@ -1631,13 +1628,13 @@ def API_updateDashboardConfigurationItem():
|
|||||||
|
|
||||||
return ResponseObject()
|
return ResponseObject()
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/getDashboardAPIKeys', methods=['GET'])
|
@app.get(f'{APP_PREFIX}/api/getDashboardAPIKeys')
|
||||||
def API_getDashboardAPIKeys():
|
def API_getDashboardAPIKeys():
|
||||||
if DashboardConfig.GetConfig('Server', 'dashboard_api_key'):
|
if DashboardConfig.GetConfig('Server', 'dashboard_api_key'):
|
||||||
return ResponseObject(data=DashboardConfig.DashboardAPIKeys)
|
return ResponseObject(data=DashboardConfig.DashboardAPIKeys)
|
||||||
return ResponseObject(False, "WGDashboard API Keys function is disabled")
|
return ResponseObject(False, "WGDashboard API Keys function is disabled")
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/newDashboardAPIKey', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/newDashboardAPIKey')
|
||||||
def API_newDashboardAPIKey():
|
def API_newDashboardAPIKey():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
if DashboardConfig.GetConfig('Server', 'dashboard_api_key'):
|
if DashboardConfig.GetConfig('Server', 'dashboard_api_key'):
|
||||||
@ -1652,7 +1649,7 @@ def API_newDashboardAPIKey():
|
|||||||
return ResponseObject(False, str(e))
|
return ResponseObject(False, str(e))
|
||||||
return ResponseObject(False, "Dashboard API Keys function is disbaled")
|
return ResponseObject(False, "Dashboard API Keys function is disbaled")
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/deleteDashboardAPIKey', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/deleteDashboardAPIKey')
|
||||||
def API_deleteDashboardAPIKey():
|
def API_deleteDashboardAPIKey():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
if DashboardConfig.GetConfig('Server', 'dashboard_api_key'):
|
if DashboardConfig.GetConfig('Server', 'dashboard_api_key'):
|
||||||
@ -1662,7 +1659,7 @@ def API_deleteDashboardAPIKey():
|
|||||||
return ResponseObject(False, "Dashboard API Keys function is disbaled")
|
return ResponseObject(False, "Dashboard API Keys function is disbaled")
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/updatePeerSettings/<configName>', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/updatePeerSettings/<configName>')
|
||||||
def API_updatePeerSettings(configName):
|
def API_updatePeerSettings(configName):
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
id = data['id']
|
id = data['id']
|
||||||
@ -1682,7 +1679,7 @@ def API_updatePeerSettings(configName):
|
|||||||
allowed_ip, endpoint_allowed_ip, mtu, keepalive)
|
allowed_ip, endpoint_allowed_ip, mtu, keepalive)
|
||||||
return ResponseObject(False, "Peer does not exist")
|
return ResponseObject(False, "Peer does not exist")
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/resetPeerData/<configName>', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/resetPeerData/<configName>')
|
||||||
def API_resetPeerData(configName):
|
def API_resetPeerData(configName):
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
id = data['id']
|
id = data['id']
|
||||||
@ -1695,7 +1692,7 @@ def API_resetPeerData(configName):
|
|||||||
return ResponseObject(False, "Configuration/Peer does not exist")
|
return ResponseObject(False, "Configuration/Peer does not exist")
|
||||||
return ResponseObject(status=peer.resetDataUsage(type))
|
return ResponseObject(status=peer.resetDataUsage(type))
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/deletePeers/<configName>', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/deletePeers/<configName>')
|
||||||
def API_deletePeers(configName: str) -> ResponseObject:
|
def API_deletePeers(configName: str) -> ResponseObject:
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
peers = data['peers']
|
peers = data['peers']
|
||||||
@ -1708,7 +1705,7 @@ def API_deletePeers(configName: str) -> ResponseObject:
|
|||||||
return ResponseObject(False, "Configuration does not exist")
|
return ResponseObject(False, "Configuration does not exist")
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/restrictPeers/<configName>', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/restrictPeers/<configName>')
|
||||||
def API_restrictPeers(configName: str) -> ResponseObject:
|
def API_restrictPeers(configName: str) -> ResponseObject:
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
peers = data['peers']
|
peers = data['peers']
|
||||||
@ -1719,7 +1716,7 @@ def API_restrictPeers(configName: str) -> ResponseObject:
|
|||||||
return configuration.restrictPeers(peers)
|
return configuration.restrictPeers(peers)
|
||||||
return ResponseObject(False, "Configuration does not exist")
|
return ResponseObject(False, "Configuration does not exist")
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/sharePeer/create', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/sharePeer/create')
|
||||||
def API_sharePeer_create():
|
def API_sharePeer_create():
|
||||||
data: dict[str, str] = request.get_json()
|
data: dict[str, str] = request.get_json()
|
||||||
Configuration = data.get('Configuration')
|
Configuration = data.get('Configuration')
|
||||||
@ -1735,7 +1732,7 @@ def API_sharePeer_create():
|
|||||||
return ResponseObject(status, message)
|
return ResponseObject(status, message)
|
||||||
return ResponseObject(data=AllPeerShareLinks.getLinkByID(message))
|
return ResponseObject(data=AllPeerShareLinks.getLinkByID(message))
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/sharePeer/update', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/sharePeer/update')
|
||||||
def API_sharePeer_update():
|
def API_sharePeer_update():
|
||||||
data: dict[str, str] = request.get_json()
|
data: dict[str, str] = request.get_json()
|
||||||
ShareID: str = data.get("ShareID")
|
ShareID: str = data.get("ShareID")
|
||||||
@ -1752,7 +1749,7 @@ def API_sharePeer_update():
|
|||||||
return ResponseObject(status, message)
|
return ResponseObject(status, message)
|
||||||
return ResponseObject(data=AllPeerShareLinks.getLinkByID(ShareID))
|
return ResponseObject(data=AllPeerShareLinks.getLinkByID(ShareID))
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/sharePeer/get', methods=['GET'])
|
@app.get(f'{APP_PREFIX}/api/sharePeer/get')
|
||||||
def API_sharePeer_get():
|
def API_sharePeer_get():
|
||||||
data = request.args
|
data = request.args
|
||||||
ShareID = data.get("ShareID")
|
ShareID = data.get("ShareID")
|
||||||
@ -1771,9 +1768,7 @@ def API_sharePeer_get():
|
|||||||
|
|
||||||
return ResponseObject(data=p.downloadPeer())
|
return ResponseObject(data=p.downloadPeer())
|
||||||
|
|
||||||
|
@app.post(f'{APP_PREFIX}/api/allowAccessPeers/<configName>')
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/allowAccessPeers/<configName>', methods=['POST'])
|
|
||||||
def API_allowAccessPeers(configName: str) -> ResponseObject:
|
def API_allowAccessPeers(configName: str) -> ResponseObject:
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
peers = data['peers']
|
peers = data['peers']
|
||||||
@ -1784,8 +1779,7 @@ def API_allowAccessPeers(configName: str) -> ResponseObject:
|
|||||||
return configuration.allowAccessPeers(peers)
|
return configuration.allowAccessPeers(peers)
|
||||||
return ResponseObject(False, "Configuration does not exist")
|
return ResponseObject(False, "Configuration does not exist")
|
||||||
|
|
||||||
|
@app.post(f'{APP_PREFIX}/api/addPeers/<configName>')
|
||||||
@app.route(f'{APP_PREFIX}/api/addPeers/<configName>', methods=['POST'])
|
|
||||||
def API_addPeers(configName):
|
def API_addPeers(configName):
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
bulkAdd = data['bulkAdd']
|
bulkAdd = data['bulkAdd']
|
||||||
@ -1858,7 +1852,7 @@ def API_addPeers(configName):
|
|||||||
return ResponseObject(False, "Configuration does not exist")
|
return ResponseObject(False, "Configuration does not exist")
|
||||||
|
|
||||||
|
|
||||||
@app.route(f"{APP_PREFIX}/api/downloadPeer/<configName>")
|
@app.get(f"{APP_PREFIX}/api/downloadPeer/<configName>")
|
||||||
def API_downloadPeer(configName):
|
def API_downloadPeer(configName):
|
||||||
data = request.args
|
data = request.args
|
||||||
if configName not in WireguardConfigurations.keys():
|
if configName not in WireguardConfigurations.keys():
|
||||||
@ -1870,7 +1864,7 @@ def API_downloadPeer(configName):
|
|||||||
return ResponseObject(data=peer.downloadPeer())
|
return ResponseObject(data=peer.downloadPeer())
|
||||||
|
|
||||||
|
|
||||||
@app.route(f"{APP_PREFIX}/api/downloadAllPeers/<configName>")
|
@app.get(f"{APP_PREFIX}/api/downloadAllPeers/<configName>")
|
||||||
def API_downloadAllPeers(configName):
|
def API_downloadAllPeers(configName):
|
||||||
if configName not in WireguardConfigurations.keys():
|
if configName not in WireguardConfigurations.keys():
|
||||||
return ResponseObject(False, "Configuration does not exist")
|
return ResponseObject(False, "Configuration does not exist")
|
||||||
@ -1886,13 +1880,13 @@ def API_downloadAllPeers(configName):
|
|||||||
return ResponseObject(data=peerData)
|
return ResponseObject(data=peerData)
|
||||||
|
|
||||||
|
|
||||||
@app.route(f"{APP_PREFIX}/api/getAvailableIPs/<configName>")
|
@app.get(f"{APP_PREFIX}/api/getAvailableIPs/<configName>")
|
||||||
def API_getAvailableIPs(configName):
|
def API_getAvailableIPs(configName):
|
||||||
status, ips = _getWireguardConfigurationAvailableIP(configName)
|
status, ips = _getWireguardConfigurationAvailableIP(configName)
|
||||||
return ResponseObject(status=status, data=ips)
|
return ResponseObject(status=status, data=ips)
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/getWireguardConfigurationInfo', methods=["GET"])
|
@app.get(f'{APP_PREFIX}/api/getWireguardConfigurationInfo')
|
||||||
def API_getConfigurationInfo():
|
def API_getConfigurationInfo():
|
||||||
configurationName = request.args.get("configurationName")
|
configurationName = request.args.get("configurationName")
|
||||||
if not configurationName or configurationName not in WireguardConfigurations.keys():
|
if not configurationName or configurationName not in WireguardConfigurations.keys():
|
||||||
@ -1904,16 +1898,15 @@ def API_getConfigurationInfo():
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/getDashboardTheme')
|
@app.get(f'{APP_PREFIX}/api/getDashboardTheme')
|
||||||
def API_getDashboardTheme():
|
def API_getDashboardTheme():
|
||||||
return ResponseObject(data=DashboardConfig.GetConfig("Server", "dashboard_theme")[1])
|
return ResponseObject(data=DashboardConfig.GetConfig("Server", "dashboard_theme")[1])
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/getDashboardVersion')
|
@app.get(f'{APP_PREFIX}/api/getDashboardVersion')
|
||||||
def API_getDashboardVersion():
|
def API_getDashboardVersion():
|
||||||
return ResponseObject(data=DashboardConfig.GetConfig("Server", "version")[1])
|
return ResponseObject(data=DashboardConfig.GetConfig("Server", "version")[1])
|
||||||
|
|
||||||
|
@app.post(f'{APP_PREFIX}/api/savePeerScheduleJob/')
|
||||||
@app.route(f'{APP_PREFIX}/api/savePeerScheduleJob/', methods=["POST"])
|
|
||||||
def API_savePeerScheduleJob():
|
def API_savePeerScheduleJob():
|
||||||
data = request.json
|
data = request.json
|
||||||
if "Job" not in data.keys() not in WireguardConfigurations.keys():
|
if "Job" not in data.keys() not in WireguardConfigurations.keys():
|
||||||
@ -1933,7 +1926,7 @@ def API_savePeerScheduleJob():
|
|||||||
return ResponseObject(s, data=p)
|
return ResponseObject(s, data=p)
|
||||||
return ResponseObject(s, message=p)
|
return ResponseObject(s, message=p)
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/deletePeerScheduleJob/', methods=['POST'])
|
@app.post(f'{APP_PREFIX}/api/deletePeerScheduleJob/')
|
||||||
def API_deletePeerScheduleJob():
|
def API_deletePeerScheduleJob():
|
||||||
data = request.json
|
data = request.json
|
||||||
if "Job" not in data.keys() not in WireguardConfigurations.keys():
|
if "Job" not in data.keys() not in WireguardConfigurations.keys():
|
||||||
@ -1953,7 +1946,7 @@ def API_deletePeerScheduleJob():
|
|||||||
return ResponseObject(s, data=p)
|
return ResponseObject(s, data=p)
|
||||||
return ResponseObject(s, message=p)
|
return ResponseObject(s, message=p)
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/getPeerScheduleJobLogs/<configName>', methods=['GET'])
|
@app.get(f'{APP_PREFIX}/api/getPeerScheduleJobLogs/<configName>')
|
||||||
def API_getPeerScheduleJobLogs(configName):
|
def API_getPeerScheduleJobLogs(configName):
|
||||||
if configName not in WireguardConfigurations.keys():
|
if configName not in WireguardConfigurations.keys():
|
||||||
return ResponseObject(False, "Configuration does not exist")
|
return ResponseObject(False, "Configuration does not exist")
|
||||||
@ -1970,7 +1963,7 @@ Tools
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/ping/getAllPeersIpAddress')
|
@app.get(f'{APP_PREFIX}/api/ping/getAllPeersIpAddress')
|
||||||
def API_ping_getAllPeersIpAddress():
|
def API_ping_getAllPeersIpAddress():
|
||||||
ips = {}
|
ips = {}
|
||||||
for c in WireguardConfigurations.values():
|
for c in WireguardConfigurations.values():
|
||||||
@ -2000,7 +1993,7 @@ def API_ping_getAllPeersIpAddress():
|
|||||||
return ResponseObject(data=ips)
|
return ResponseObject(data=ips)
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/ping/execute')
|
@app.get(f'{APP_PREFIX}/api/ping/execute')
|
||||||
def API_ping_execute():
|
def API_ping_execute():
|
||||||
if "ipAddress" in request.args.keys() and "count" in request.args.keys():
|
if "ipAddress" in request.args.keys() and "count" in request.args.keys():
|
||||||
ip = request.args['ipAddress']
|
ip = request.args['ipAddress']
|
||||||
@ -2026,7 +2019,7 @@ def API_ping_execute():
|
|||||||
return ResponseObject(False, "Please provide ipAddress and count")
|
return ResponseObject(False, "Please provide ipAddress and count")
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/traceroute/execute')
|
@app.get(f'{APP_PREFIX}/api/traceroute/execute')
|
||||||
def API_traceroute_execute():
|
def API_traceroute_execute():
|
||||||
if "ipAddress" in request.args.keys() and len(request.args.get("ipAddress")) > 0:
|
if "ipAddress" in request.args.keys() and len(request.args.get("ipAddress")) > 0:
|
||||||
ipAddress = request.args.get('ipAddress')
|
ipAddress = request.args.get('ipAddress')
|
||||||
@ -2062,7 +2055,7 @@ def API_traceroute_execute():
|
|||||||
else:
|
else:
|
||||||
return ResponseObject(False, "Please provide ipAddress")
|
return ResponseObject(False, "Please provide ipAddress")
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/getDashboardUpdate')
|
@app.get(f'{APP_PREFIX}/api/getDashboardUpdate')
|
||||||
def API_getDashboardUpdate():
|
def API_getDashboardUpdate():
|
||||||
import urllib.request as req
|
import urllib.request as req
|
||||||
try:
|
try:
|
||||||
@ -2085,13 +2078,13 @@ Sign Up
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/isTotpEnabled')
|
@app.get(f'{APP_PREFIX}/api/isTotpEnabled')
|
||||||
def API_isTotpEnabled():
|
def API_isTotpEnabled():
|
||||||
return (
|
return (
|
||||||
ResponseObject(data=DashboardConfig.GetConfig("Account", "enable_totp")[1] and DashboardConfig.GetConfig("Account", "totp_verified")[1]))
|
ResponseObject(data=DashboardConfig.GetConfig("Account", "enable_totp")[1] and DashboardConfig.GetConfig("Account", "totp_verified")[1]))
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/Welcome_GetTotpLink')
|
@app.get(f'{APP_PREFIX}/api/Welcome_GetTotpLink')
|
||||||
def API_Welcome_GetTotpLink():
|
def API_Welcome_GetTotpLink():
|
||||||
if not DashboardConfig.GetConfig("Account", "totp_verified")[1]:
|
if not DashboardConfig.GetConfig("Account", "totp_verified")[1]:
|
||||||
DashboardConfig.SetConfig("Account", "totp_key", pyotp.random_base32())
|
DashboardConfig.SetConfig("Account", "totp_key", pyotp.random_base32())
|
||||||
@ -2101,7 +2094,7 @@ def API_Welcome_GetTotpLink():
|
|||||||
return ResponseObject(False)
|
return ResponseObject(False)
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/Welcome_VerifyTotpLink', methods=["POST"])
|
@app.post(f'{APP_PREFIX}/api/Welcome_VerifyTotpLink')
|
||||||
def API_Welcome_VerifyTotpLink():
|
def API_Welcome_VerifyTotpLink():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
totp = pyotp.TOTP(DashboardConfig.GetConfig("Account", "totp_key")[1]).now()
|
totp = pyotp.TOTP(DashboardConfig.GetConfig("Account", "totp_key")[1]).now()
|
||||||
@ -2111,7 +2104,7 @@ def API_Welcome_VerifyTotpLink():
|
|||||||
return ResponseObject(totp == data['totp'])
|
return ResponseObject(totp == data['totp'])
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/api/Welcome_Finish', methods=["POST"])
|
@app.post(f'{APP_PREFIX}/api/Welcome_Finish')
|
||||||
def API_Welcome_Finish():
|
def API_Welcome_Finish():
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
if DashboardConfig.GetConfig("Other", "welcome_session")[1]:
|
if DashboardConfig.GetConfig("Other", "welcome_session")[1]:
|
||||||
@ -2178,12 +2171,7 @@ def API_Locale_Update():
|
|||||||
return ResponseObject(data=Locale.getLanguage())
|
return ResponseObject(data=Locale.getLanguage())
|
||||||
|
|
||||||
|
|
||||||
|
@app.get(f'{APP_PREFIX}/')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.route(f'{APP_PREFIX}/', methods=['GET'])
|
|
||||||
def index():
|
def index():
|
||||||
"""
|
"""
|
||||||
Index page related
|
Index page related
|
||||||
@ -2191,7 +2179,6 @@ def index():
|
|||||||
"""
|
"""
|
||||||
return render_template('index.html', APP_PREFIX=APP_PREFIX)
|
return render_template('index.html', APP_PREFIX=APP_PREFIX)
|
||||||
|
|
||||||
|
|
||||||
def backGroundThread():
|
def backGroundThread():
|
||||||
global WireguardConfigurations
|
global WireguardConfigurations
|
||||||
print(f"[WGDashboard] Background Thread #1 Started", flush=True)
|
print(f"[WGDashboard] Background Thread #1 Started", flush=True)
|
||||||
@ -2210,7 +2197,6 @@ def backGroundThread():
|
|||||||
print(f"[WGDashboard] Background Thread #1 Error: {str(e)}", flush=True)
|
print(f"[WGDashboard] Background Thread #1 Error: {str(e)}", flush=True)
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
|
|
||||||
|
|
||||||
def peerJobScheduleBackgroundThread():
|
def peerJobScheduleBackgroundThread():
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
print(f"[WGDashboard] Background Thread #2 Started", flush=True)
|
print(f"[WGDashboard] Background Thread #2 Started", flush=True)
|
||||||
@ -2224,7 +2210,6 @@ def gunicornConfig():
|
|||||||
_, app_port = DashboardConfig.GetConfig("Server", "app_port")
|
_, app_port = DashboardConfig.GetConfig("Server", "app_port")
|
||||||
return app_ip, app_port
|
return app_ip, app_port
|
||||||
|
|
||||||
|
|
||||||
AllPeerShareLinks: PeerShareLinks = PeerShareLinks()
|
AllPeerShareLinks: PeerShareLinks = PeerShareLinks()
|
||||||
AllPeerJobs: PeerJobs = PeerJobs()
|
AllPeerJobs: PeerJobs = PeerJobs()
|
||||||
JobLogger: PeerJobLogger = PeerJobLogger()
|
JobLogger: PeerJobLogger = PeerJobLogger()
|
||||||
@ -2233,7 +2218,6 @@ _, app_ip = DashboardConfig.GetConfig("Server", "app_ip")
|
|||||||
_, app_port = DashboardConfig.GetConfig("Server", "app_port")
|
_, app_port = DashboardConfig.GetConfig("Server", "app_port")
|
||||||
_, WG_CONF_PATH = DashboardConfig.GetConfig("Server", "wg_conf_path")
|
_, WG_CONF_PATH = DashboardConfig.GetConfig("Server", "wg_conf_path")
|
||||||
|
|
||||||
|
|
||||||
WireguardConfigurations: dict[str, WireguardConfiguration] = {}
|
WireguardConfigurations: dict[str, WireguardConfiguration] = {}
|
||||||
_getConfigurationList()
|
_getConfigurationList()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user