mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2025-10-02 23:36:17 +00:00
feat: slight refactors to improve logic
This commit is contained in:
@@ -1,3 +0,0 @@
|
|||||||
FROM ubuntu:24.04
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get full-upgrade -y
|
|
@@ -57,7 +57,7 @@ stop_service() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo "------------------------- START ----------------------------"
|
echo "------------------------- START ----------------------------"
|
||||||
echo "Starting the WireGuard Dashboard Docker container."
|
echo "Starting the WGDashboard Docker container."
|
||||||
|
|
||||||
ensure_installation() {
|
ensure_installation() {
|
||||||
echo "Quick-installing..."
|
echo "Quick-installing..."
|
||||||
@@ -139,7 +139,7 @@ set_envvars() {
|
|||||||
set_ini Server app_port "${wgd_port}"
|
set_ini Server app_port "${wgd_port}"
|
||||||
|
|
||||||
# Account settings - process all parameters
|
# Account settings - process all parameters
|
||||||
echo "Configuring user account:"
|
[[ -n "$username" ]] && echo "Configuring user account:"
|
||||||
# Basic account variables
|
# Basic account variables
|
||||||
[[ -n "$username" ]] && set_ini Account username "${username}"
|
[[ -n "$username" ]] && set_ini Account username "${username}"
|
||||||
|
|
||||||
|
@@ -174,12 +174,18 @@ class AmneziaWireguardConfiguration(WireguardConfiguration):
|
|||||||
|
|
||||||
def getPeers(self):
|
def getPeers(self):
|
||||||
self.Peers.clear()
|
self.Peers.clear()
|
||||||
|
current_app.logger.info(f"Refreshing {self.Name} peer list")
|
||||||
|
|
||||||
if self.configurationFileChanged():
|
if self.configurationFileChanged():
|
||||||
with open(self.configPath, 'r') as configFile:
|
with open(self.configPath, 'r') as configFile:
|
||||||
p = []
|
p = []
|
||||||
pCounter = -1
|
pCounter = -1
|
||||||
content = configFile.read().split('\n')
|
content = configFile.read().split('\n')
|
||||||
try:
|
try:
|
||||||
|
if "[Peer]" not in content:
|
||||||
|
current_app.logger.info(f"{self.Name} config has no [Peer] section")
|
||||||
|
return
|
||||||
|
|
||||||
peerStarts = content.index("[Peer]")
|
peerStarts = content.index("[Peer]")
|
||||||
content = content[peerStarts:]
|
content = content[peerStarts:]
|
||||||
for i in content:
|
for i in content:
|
||||||
|
@@ -399,80 +399,82 @@ class WireguardConfiguration:
|
|||||||
def getPeers(self):
|
def getPeers(self):
|
||||||
tmpList = []
|
tmpList = []
|
||||||
current_app.logger.info(f"Refreshing {self.Name} peer list")
|
current_app.logger.info(f"Refreshing {self.Name} peer list")
|
||||||
|
|
||||||
if self.configurationFileChanged():
|
if self.configurationFileChanged():
|
||||||
with open(self.configPath, 'r') as configFile:
|
with open(self.configPath, 'r') as configFile:
|
||||||
p = []
|
p = []
|
||||||
pCounter = -1
|
pCounter = -1
|
||||||
content = configFile.read().split('\n')
|
content = configFile.read().split('\n')
|
||||||
try:
|
try:
|
||||||
if "[Peer]" in content:
|
if "[Peer]" not in content:
|
||||||
peerStarts = content.index("[Peer]")
|
current_app.logger.info(f"{self.Name} config has no [Peer] section")
|
||||||
content = content[peerStarts:]
|
return
|
||||||
for i in content:
|
|
||||||
if not RegexMatch("#(.*)", i) and not RegexMatch(";(.*)", i):
|
peerStarts = content.index("[Peer]")
|
||||||
if i == "[Peer]":
|
content = content[peerStarts:]
|
||||||
pCounter += 1
|
for i in content:
|
||||||
p.append({})
|
if not RegexMatch("#(.*)", i) and not RegexMatch(";(.*)", i):
|
||||||
p[pCounter]["name"] = ""
|
if i == "[Peer]":
|
||||||
else:
|
pCounter += 1
|
||||||
if len(i) > 0:
|
p.append({})
|
||||||
split = re.split(r'\s*=\s*', i, 1)
|
p[pCounter]["name"] = ""
|
||||||
if len(split) == 2:
|
else:
|
||||||
p[pCounter][split[0]] = split[1]
|
if len(i) > 0:
|
||||||
|
split = re.split(r'\s*=\s*', i, 1)
|
||||||
if RegexMatch("#Name# = (.*)", i):
|
if len(split) == 2:
|
||||||
split = re.split(r'\s*=\s*', i, 1)
|
p[pCounter][split[0]] = split[1]
|
||||||
if len(split) == 2:
|
|
||||||
p[pCounter]["name"] = split[1]
|
if RegexMatch("#Name# = (.*)", i):
|
||||||
|
split = re.split(r'\s*=\s*', i, 1)
|
||||||
for i in p:
|
if len(split) == 2:
|
||||||
if "PublicKey" in i.keys():
|
p[pCounter]["name"] = split[1]
|
||||||
with self.engine.connect() as conn:
|
|
||||||
tempPeer = conn.execute(
|
for i in p:
|
||||||
self.peersTable.select().where(
|
if "PublicKey" in i.keys():
|
||||||
|
with self.engine.connect() as conn:
|
||||||
|
tempPeer = conn.execute(
|
||||||
|
self.peersTable.select().where(
|
||||||
|
self.peersTable.columns.id == i['PublicKey']
|
||||||
|
)
|
||||||
|
).mappings().fetchone()
|
||||||
|
|
||||||
|
if tempPeer is None:
|
||||||
|
tempPeer = {
|
||||||
|
"id": i['PublicKey'],
|
||||||
|
"private_key": "",
|
||||||
|
"DNS": self.DashboardConfig.GetConfig("Peers", "peer_global_DNS")[1],
|
||||||
|
"endpoint_allowed_ip": self.DashboardConfig.GetConfig("Peers", "peer_endpoint_allowed_ip")[
|
||||||
|
1],
|
||||||
|
"name": i.get("name"),
|
||||||
|
"total_receive": 0,
|
||||||
|
"total_sent": 0,
|
||||||
|
"total_data": 0,
|
||||||
|
"endpoint": "N/A",
|
||||||
|
"status": "stopped",
|
||||||
|
"latest_handshake": "N/A",
|
||||||
|
"allowed_ip": i.get("AllowedIPs", "N/A"),
|
||||||
|
"cumu_receive": 0,
|
||||||
|
"cumu_sent": 0,
|
||||||
|
"cumu_data": 0,
|
||||||
|
"mtu": self.DashboardConfig.GetConfig("Peers", "peer_mtu")[1] if len(self.DashboardConfig.GetConfig("Peers", "peer_mtu")[1]) > 0 else None,
|
||||||
|
"keepalive": self.DashboardConfig.GetConfig("Peers", "peer_keep_alive")[1] if len(self.DashboardConfig.GetConfig("Peers", "peer_keep_alive")[1]) > 0 else None,
|
||||||
|
"remote_endpoint": self.DashboardConfig.GetConfig("Peers", "remote_endpoint")[1],
|
||||||
|
"preshared_key": i["PresharedKey"] if "PresharedKey" in i.keys() else ""
|
||||||
|
}
|
||||||
|
with self.engine.begin() as conn:
|
||||||
|
conn.execute(
|
||||||
|
self.peersTable.insert().values(tempPeer)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
with self.engine.begin() as conn:
|
||||||
|
conn.execute(
|
||||||
|
self.peersTable.update().values({
|
||||||
|
"allowed_ip": i.get("AllowedIPs", "N/A")
|
||||||
|
}).where(
|
||||||
self.peersTable.columns.id == i['PublicKey']
|
self.peersTable.columns.id == i['PublicKey']
|
||||||
)
|
)
|
||||||
).mappings().fetchone()
|
)
|
||||||
|
tmpList.append(Peer(tempPeer, self))
|
||||||
if tempPeer is None:
|
|
||||||
tempPeer = {
|
|
||||||
"id": i['PublicKey'],
|
|
||||||
"private_key": "",
|
|
||||||
"DNS": self.DashboardConfig.GetConfig("Peers", "peer_global_DNS")[1],
|
|
||||||
"endpoint_allowed_ip": self.DashboardConfig.GetConfig("Peers", "peer_endpoint_allowed_ip")[
|
|
||||||
1],
|
|
||||||
"name": i.get("name"),
|
|
||||||
"total_receive": 0,
|
|
||||||
"total_sent": 0,
|
|
||||||
"total_data": 0,
|
|
||||||
"endpoint": "N/A",
|
|
||||||
"status": "stopped",
|
|
||||||
"latest_handshake": "N/A",
|
|
||||||
"allowed_ip": i.get("AllowedIPs", "N/A"),
|
|
||||||
"cumu_receive": 0,
|
|
||||||
"cumu_sent": 0,
|
|
||||||
"cumu_data": 0,
|
|
||||||
"mtu": self.DashboardConfig.GetConfig("Peers", "peer_mtu")[1] if len(self.DashboardConfig.GetConfig("Peers", "peer_mtu")[1]) > 0 else None,
|
|
||||||
"keepalive": self.DashboardConfig.GetConfig("Peers", "peer_keep_alive")[1] if len(self.DashboardConfig.GetConfig("Peers", "peer_keep_alive")[1]) > 0 else None,
|
|
||||||
"remote_endpoint": self.DashboardConfig.GetConfig("Peers", "remote_endpoint")[1],
|
|
||||||
"preshared_key": i["PresharedKey"] if "PresharedKey" in i.keys() else ""
|
|
||||||
}
|
|
||||||
with self.engine.begin() as conn:
|
|
||||||
conn.execute(
|
|
||||||
self.peersTable.insert().values(tempPeer)
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
with self.engine.begin() as conn:
|
|
||||||
conn.execute(
|
|
||||||
self.peersTable.update().values({
|
|
||||||
"allowed_ip": i.get("AllowedIPs", "N/A")
|
|
||||||
}).where(
|
|
||||||
self.peersTable.columns.id == i['PublicKey']
|
|
||||||
)
|
|
||||||
)
|
|
||||||
tmpList.append(Peer(tempPeer, self))
|
|
||||||
else:
|
|
||||||
current_app.logger.warning(f"{self.Name} is an empty configuration")
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
current_app.logger.error(f"{self.Name} getPeers() Error", e)
|
current_app.logger.error(f"{self.Name} getPeers() Error", e)
|
||||||
else:
|
else:
|
||||||
|
Reference in New Issue
Block a user