Added IP logging for #525

This commit is contained in:
Donald Zou
2025-09-05 17:57:50 +08:00
parent 030c1bdcba
commit 9caed31185
3 changed files with 35 additions and 8 deletions

View File

@@ -1519,6 +1519,7 @@ def peerInformationBackgroundThread():
c.getPeers()
if delay == 6:
c.logPeersTraffic()
c.logPeersHistoryEndpoint()
c.getRestrictedPeersList()
except Exception as e:
print(f"[WGDashboard] Background Thread #1 Error: {str(e)}", flush=True)

View File

@@ -452,9 +452,10 @@ class DashboardClients:
with self.engine.connect() as conn:
t = conn.execute(
self.dashboardClientsPasswordResetLinkTable.select().where(
self.dashboardClientsPasswordResetLinkTable.c.ClientID == ClientID,
self.dashboardClientsPasswordResetLinkTable.c.ResetToken == Token,
self.dashboardClientsPasswordResetLinkTable.c.ExpiryDate > datetime.datetime.now()
db.and_(self.dashboardClientsPasswordResetLinkTable.c.ClientID == ClientID,
self.dashboardClientsPasswordResetLinkTable.c.ResetToken == Token,
self.dashboardClientsPasswordResetLinkTable.c.ExpiryDate > datetime.datetime.now())
)
).mappings().fetchone()
return t is not None
@@ -465,8 +466,8 @@ class DashboardClients:
self.dashboardClientsPasswordResetLinkTable.update().values({
"ExpiryDate": datetime.datetime.now()
}).where(
self.dashboardClientsPasswordResetLinkTable.c.ClientID == ClientID,
self.dashboardClientsPasswordResetLinkTable.c.ResetToken == Token
db.and_(self.dashboardClientsPasswordResetLinkTable.c.ClientID == ClientID,
self.dashboardClientsPasswordResetLinkTable.c.ResetToken == Token)
)
)
return True

View File

@@ -291,6 +291,16 @@ class WireguardConfiguration:
server_default=sqlalchemy.func.now()),
extend_existing=True
)
self.peersHistoryEndpointTable = sqlalchemy.Table(
f'{dbName}_history_endpoint', self.metadata,
sqlalchemy.Column('id', sqlalchemy.String(255), nullable=False),
sqlalchemy.Column('endpoint', sqlalchemy.String(255), nullable=False),
sqlalchemy.Column('time',
(sqlalchemy.DATETIME if self.DashboardConfig.GetConfig("Database", "type")[1] == 'sqlite' else sqlalchemy.TIMESTAMP)),
extend_existing=True
)
self.peersDeletedTable = sqlalchemy.Table(
f'{dbName}_deleted', self.metadata,
sqlalchemy.Column('id', sqlalchemy.String(255), nullable=False, primary_key=True),
@@ -454,7 +464,6 @@ class WireguardConfiguration:
with self.engine.begin() as conn:
for tempPeer in self.Peers:
if tempPeer.status == "running":
print(tempPeer.id + " running")
conn.execute(
self.peersTransferTable.insert().values({
"id": tempPeer.id,
@@ -468,6 +477,22 @@ class WireguardConfiguration:
})
)
def logPeersHistoryEndpoint(self):
with self.engine.begin() as conn:
for tempPeer in self.Peers:
if tempPeer.status == "running":
endpoint = tempPeer.endpoint.rsplit(":", 1)
if len(endpoint) == 2 and len(endpoint[0]) > 0:
conn.execute(
self.peersHistoryEndpointTable.insert().values({
"id": tempPeer.id,
"endpoint": endpoint[0],
"time": datetime.now()
})
)
def addPeers(self, peers: list) -> tuple[bool, dict]:
result = {
@@ -792,7 +817,7 @@ class WireguardConfiguration:
)
count += 2
def toggleConfiguration(self) -> [bool, str]:
def toggleConfiguration(self) -> tuple[bool, str] | tuple[bool, None]:
self.getStatus()
if self.Status:
try: