Compare commits

..

5 Commits

Author SHA1 Message Date
0d28bd3445 🎨调整客户端检测离线时间为三分钟 2024-06-07 10:46:22 +08:00
c1d81b9af5 🎨 2024-06-07 10:10:24 +08:00
36951a5bb8 🐛fix a bug 2024-06-07 09:54:30 +08:00
911bc95b16 🎨下线客户端后刷新客户端链接列表 2024-06-07 09:06:11 +08:00
b1b49e2605 🎨修复下线客户端bug 2024-06-07 08:47:47 +08:00
6 changed files with 25 additions and 14 deletions

View File

@@ -373,7 +373,7 @@ func (clients) Status(c *gin.Context) {
ipAllocation += iaip.String() + "," ipAllocation += iaip.String() + ","
} }
ipAllocation = strings.TrimRight(ipAllocation, ",") ipAllocation = strings.TrimRight(ipAllocation, ",")
isOnline := time.Since(p.LastHandshakeTime).Minutes() < 1 isOnline := time.Since(p.LastHandshakeTime).Minutes() < 3
data = append(data, vo.ClientStatus{ data = append(data, vo.ClientStatus{
ID: clientInfo.Id, ID: clientInfo.Id,
Name: clientInfo.Name, Name: clientInfo.Name,

View File

@@ -79,7 +79,7 @@ func asyncWireguardConfigFile() {
var renderClients []template_data.Client var renderClients []template_data.Client
for _, v := range serverEnt.Clients { for _, v := range serverEnt.Clients {
// 如果不是确认后创建或者未启用就不写入到wireguard配置文件当中 // 如果不是确认后创建或者未启用就不写入到wireguard配置文件当中
if *v.EnableAfterCreation != 1 || *v.Enabled != 1 { if *v.Enabled != 1 {
continue continue
} }
var clientKey template_data.Keys var clientKey template_data.Keys

View File

@@ -229,5 +229,5 @@ func (r clientRepo) GetByPublicKey(publicKey string) (data entity.Client, err er
// @param id // @param id
// @return err // @return err
func (r clientRepo) Disabled(id string) (err error) { func (r clientRepo) Disabled(id string) (err error) {
return r.Model(&entity.Client{}).Where("id = ?", id).Update("status", 0).Error return r.Model(&entity.Client{}).Where("id = ?", id).Update("enabled", 0).Error
} }

View File

@@ -132,6 +132,7 @@ const getRule = () => {
rule.value = res.data.rule === "hand"; rule.value = res.data.rule === "hand";
} }
}); });
storageLocal().setItem("restart-rule", rule.value);
return rule; return rule;
}; };

View File

@@ -71,6 +71,7 @@ const offlineClientHandler = (clientID: string) => {
offlineClient(clientID).then(res => { offlineClient(clientID).then(res => {
if (res.code === 200) { if (res.code === 200) {
message("下线客户端成功", { type: "success" }); message("下线客户端成功", { type: "success" });
getClientsStatus();
} }
}); });
}; };
@@ -86,7 +87,13 @@ getClientsStatus();
<template #header> <template #header>
<div class="card-header"> <div class="card-header">
<span>操作日志</span> <span>操作日志</span>
<el-button style="float: right" type="primary" :icon="Refresh" @click="refreshClick('systemLog')">刷新</el-button> <el-button
style="float: right"
type="primary"
:icon="Refresh"
@click="refreshClick('systemLog')"
>刷新</el-button
>
</div> </div>
</template> </template>
<el-table <el-table
@@ -193,7 +200,13 @@ getClientsStatus();
<template #header> <template #header>
<div class="card-header"> <div class="card-header">
<span>客户端链接状态</span> <span>客户端链接状态</span>
<el-button style="float: right" type="primary" :icon="Refresh" @click="refreshClick('clientStatus')">刷新</el-button> <el-button
style="float: right"
type="primary"
:icon="Refresh"
@click="refreshClick('clientStatus')"
>刷新</el-button
>
</div> </div>
</template> </template>
<el-table <el-table
@@ -255,11 +268,7 @@ getClientsStatus();
min-width="80" min-width="80"
align="center" align="center"
/> />
<el-table-column <el-table-column label="操作" min-width="80" align="center">
label="操作"
min-width="80"
align="center"
>
<template #default="scope"> <template #default="scope">
<el-button <el-button
v-if="scope.row.isOnline" v-if="scope.row.isOnline"

View File

@@ -151,6 +151,7 @@ const openAddClientDialog = () => {
} }
}); });
const serverInfo = storageLocal().getItem("server-info"); const serverInfo = storageLocal().getItem("server-info");
const restartRule = storageLocal().getItem("restart-rule") ? 1 : 0;
addDialog({ addDialog({
width: "40%", width: "40%",
title: "新增", title: "新增",
@@ -167,7 +168,7 @@ const openAddClientDialog = () => {
extraAllowedIPS: "", extraAllowedIPS: "",
endpoint: "", endpoint: "",
useServerDNS: 0, useServerDNS: 0,
enableAfterCreation: 0, enableAfterCreation: restartRule,
keys: { keys: {
privateKey: "", privateKey: "",
publicKey: "", publicKey: "",