This commit is contained in:
parent
af76eda4bc
commit
941b8da804
@ -4,6 +4,7 @@ import (
|
|||||||
"gitee.ltd/lxh/logger/log"
|
"gitee.ltd/lxh/logger/log"
|
||||||
"html/template"
|
"html/template"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
type TemplateComponent struct{}
|
type TemplateComponent struct{}
|
||||||
@ -47,7 +48,7 @@ func (t TemplateComponent) ParseTemplate(filepath string) (tp *template.Template
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tp, err = template.New("wg.conf").Parse(string(file))
|
tp, err = template.New("wg.conf").Funcs(t.FuncMap()).Parse(string(file))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,3 +75,18 @@ func (t TemplateComponent) Render(tp *template.Template, data any, filepath stri
|
|||||||
|
|
||||||
return tp.Execute(wg0Conf, data)
|
return tp.Execute(wg0Conf, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FuncMap
|
||||||
|
// @description: 模板内的操作方法
|
||||||
|
// @receiver t
|
||||||
|
// @return template.FuncMap
|
||||||
|
// @return error
|
||||||
|
func (t TemplateComponent) FuncMap() template.FuncMap {
|
||||||
|
sliceToString := func(str []string) string {
|
||||||
|
return strings.Join(str, ",")
|
||||||
|
}
|
||||||
|
|
||||||
|
return template.FuncMap{
|
||||||
|
"sliceToStr": sliceToString,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -9,7 +9,6 @@ import (
|
|||||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
"wireguard-ui/component"
|
"wireguard-ui/component"
|
||||||
"wireguard-ui/http/param"
|
"wireguard-ui/http/param"
|
||||||
"wireguard-ui/http/response"
|
"wireguard-ui/http/response"
|
||||||
@ -96,28 +95,6 @@ func (ClientApi) List(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, v := range data {
|
|
||||||
if v.Keys != nil {
|
|
||||||
// 获取客户端链接信息
|
|
||||||
peer, err := component.Wireguard().GetClientByPublicKey(v.Keys.PublicKey)
|
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
var ipAllocation string
|
|
||||||
for _, iaip := range peer.AllowedIPs {
|
|
||||||
ipAllocation += iaip.String() + ","
|
|
||||||
}
|
|
||||||
data[i].DataTraffic = &vo.DataTraffic{
|
|
||||||
Online: time.Since(peer.LastHandshakeTime).Minutes() < 3,
|
|
||||||
ReceiveBytes: utils.FlowCalculation().Parse(peer.TransmitBytes),
|
|
||||||
TransmitBytes: utils.FlowCalculation().Parse(peer.ReceiveBytes),
|
|
||||||
ConnectEndpoint: ipAllocation,
|
|
||||||
LastHandAt: peer.LastHandshakeTime.Format("2006-01-02 15:04:05"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
response.R(c).Paginate(data, total, p.Current, p.Size)
|
response.R(c).Paginate(data, total, p.Current, p.Size)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[Interface]
|
[Interface]
|
||||||
Address = {{ .Server.Address|html }}
|
Address = {{ sliceToStr .Server.Address |html }}
|
||||||
ListenPort = {{ .Server.ListenPort|html }}
|
ListenPort = {{ .Server.ListenPort|html }}
|
||||||
PrivateKey = {{ .Server.PrivateKey|html }}
|
PrivateKey = {{ .Server.PrivateKey|html }}
|
||||||
MTU = {{ .Server.MTU|html }}
|
MTU = {{ .Server.MTU|html }}
|
||||||
|
Loading…
Reference in New Issue
Block a user