add file conn log

This commit is contained in:
ljw
2024-10-21 21:08:25 +08:00
parent cbb3764b60
commit 47ab3958c9
14 changed files with 579 additions and 32 deletions

View File

@@ -67,7 +67,7 @@ func (a *Audit) ConnDelete(c *gin.Context) {
response.Fail(c, 101, errList[0])
return
}
l := service.AllService.AuditService.InfoById(f.Id)
l := service.AllService.AuditService.ConnInfoById(f.Id)
if l.Id > 0 {
err := service.AllService.AuditService.DeleteAuditConn(l)
if err == nil {
@@ -79,3 +79,70 @@ func (a *Audit) ConnDelete(c *gin.Context) {
}
response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
}
// FileList 列表
// @Tags 文件日志
// @Summary 文件日志列表
// @Description 文件日志列表
// @Accept json
// @Produce json
// @Param page query int false "页码"
// @Param page_size query int false "页大小"
// @Param peer_id query int false "目标设备"
// @Param from_peer query int false "来源设备"
// @Success 200 {object} response.Response{data=model.AuditFileList}
// @Failure 500 {object} response.Response
// @Router /admin/audit_conn/list [get]
// @Security token
func (a *Audit) FileList(c *gin.Context) {
query := &admin.AuditQuery{}
if err := c.ShouldBindQuery(query); err != nil {
response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
return
}
res := service.AllService.AuditService.AuditFileList(query.Page, query.PageSize, func(tx *gorm.DB) {
if query.PeerId != "" {
tx.Where("peer_id like ?", "%"+query.PeerId+"%")
}
if query.FromPeer != "" {
tx.Where("from_peer like ?", "%"+query.FromPeer+"%")
}
})
response.Success(c, res)
}
// FileDelete 删除
// @Tags 文件日志
// @Summary 文件日志删除
// @Description 文件日志删除
// @Accept json
// @Produce json
// @Param body body model.AuditFile true "文件日志信息"
// @Success 200 {object} response.Response
// @Failure 500 {object} response.Response
// @Router /admin/audit_conn/delete [post]
// @Security token
func (a *Audit) FileDelete(c *gin.Context) {
f := &model.AuditFile{}
if err := c.ShouldBindJSON(f); err != nil {
response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
return
}
id := f.Id
errList := global.Validator.ValidVar(c, id, "required,gt=0")
if len(errList) > 0 {
response.Fail(c, 101, errList[0])
return
}
l := service.AllService.AuditService.FileInfoById(f.Id)
if l.Id > 0 {
err := service.AllService.AuditService.DeleteAuditFile(l)
if err == nil {
response.Success(c, nil)
return
}
response.Fail(c, 101, err.Error())
return
}
response.Fail(c, 101, response.TranslateMsg(c, "ItemNotFound"))
}

View File

@@ -30,7 +30,9 @@ func (a *Audit) AuditConn(c *gin.Context) {
response.Error(c, response.TranslateMsg(c, "ParamsError")+err.Error())
return
}
//fmt.Println(af)
/*ttt := &gin.H{}
c.ShouldBindBodyWith(ttt, binding.JSON)
fmt.Println(ttt)*/
ac := af.ToAuditConn()
if af.Action == model.AuditActionNew {
service.AllService.AuditService.CreateAuditConn(ac)
@@ -48,9 +50,35 @@ func (a *Audit) AuditConn(c *gin.Context) {
FromPeer: ac.FromPeer,
FromName: ac.FromName,
SessionId: ac.SessionId,
Type: ac.Type,
}
service.AllService.AuditService.UpdateAuditConn(up)
}
}
response.Success(c, "")
}
// AuditFile
// @Tags 审计
// @Summary 审计文件
// @Description 审计文件
// @Accept json
// @Produce json
// @Param body body request.AuditFileForm true "审计文件"
// @Success 200 {string} string ""
// @Failure 500 {object} response.Response
// @Router /audit/file [post]
func (a *Audit) AuditFile(c *gin.Context) {
aff := &request.AuditFileForm{}
err := c.ShouldBindBodyWith(aff, binding.JSON)
if err != nil {
response.Error(c, response.TranslateMsg(c, "ParamsError")+err.Error())
return
}
//ttt := &gin.H{}
//c.ShouldBindBodyWith(ttt, binding.JSON)
//fmt.Println(ttt)
af := aff.ToAuditFile()
service.AllService.AuditService.CreateAuditFile(af)
response.Success(c, "")
}

View File

@@ -1,7 +1,9 @@
package api
import (
"Gwen/global"
"Gwen/model"
"encoding/json"
"strconv"
)
@@ -38,3 +40,39 @@ func (a *AuditConnForm) ToAuditConn() *model.AuditConn {
Uuid: a.Uuid,
}
}
type AuditFileForm struct {
Id string `json:"id"`
Info string `json:"info"`
IsFile bool `json:"is_file"`
Path string `json:"path"`
PeerId string `json:"peer_id"`
Type int `json:"type"`
Uuid string `json:"uuid"`
}
type AuditFileInfo struct {
Ip string `json:"ip"`
Name string `json:"name"`
Num int `json:"num"`
}
func (a *AuditFileForm) ToAuditFile() *model.AuditFile {
fi := &AuditFileInfo{}
err := json.Unmarshal([]byte(a.Info), fi)
if err != nil {
global.Logger.Warn("ToAuditFile", err)
}
return &model.AuditFile{
PeerId: a.Id,
Info: a.Info,
IsFile: a.IsFile,
FromPeer: a.PeerId,
Path: a.Path,
Type: a.Type,
Uuid: a.Uuid,
FromName: fi.Name,
Ip: fi.Ip,
Num: fi.Num,
}
}

View File

@@ -148,6 +148,9 @@ func AuditBind(rg *gin.RouterGroup) {
aR := rg.Group("/audit_conn").Use(middleware.AdminPrivilege())
aR.GET("/list", cont.ConnList)
aR.POST("/delete", cont.ConnDelete)
afR := rg.Group("/audit_file").Use(middleware.AdminPrivilege())
afR.GET("/list", cont.FileList)
afR.POST("/delete", cont.FileDelete)
}
/*

View File

@@ -53,6 +53,8 @@ func ApiInit(g *gin.Engine) {
au := &api.Audit{}
//[method:POST] [uri:/api/audit/conn]
frg.POST("/audit/conn", au.AuditConn)
//[method:POST] [uri:/api/audit/file]
frg.POST("/audit/file", au.AuditFile)
frg.Use(middleware.RustAuth())
{
u := &api.User{}