From 3ba1283b885e87fcc782eaa0b33f4c422b4e5eda Mon Sep 17 00:00:00 2001 From: wangzhengkun Date: Fri, 5 Aug 2022 10:24:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0logger=E4=B8=AD?= =?UTF-8?q?=E9=97=B4=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/entity/log.go | 15 +++++++++++++++ backend/middlerware/cors.go | 1 - backend/middlerware/logger.go | 22 ++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 backend/app/entity/log.go create mode 100644 backend/middlerware/logger.go diff --git a/backend/app/entity/log.go b/backend/app/entity/log.go new file mode 100644 index 000000000..765d0b656 --- /dev/null +++ b/backend/app/entity/log.go @@ -0,0 +1,15 @@ +package entity + +import "github.com/1Panel-dev/1Panel/app/entity/common" + +type OperateLog struct { + common.BaseModel + Name string `gorm:"type:varchar(64)"` + Type string `gorm:"type:varchar(64)"` + User string `gorm:"type:varchar(64)"` + Path string `gorm:"type:varchar(64)"` + IP string `gorm:"type:varchar(64)"` + UserAgent string `gorm:"type:varchar(64)"` + Source string `gorm:"type:varchar(64)"` + Detail string `gorm:"type:longText"` +} diff --git a/backend/middlerware/cors.go b/backend/middlerware/cors.go index 22dbf376c..d81077a77 100644 --- a/backend/middlerware/cors.go +++ b/backend/middlerware/cors.go @@ -54,7 +54,6 @@ func CorsByRules() gin.HandlerFunc { func checkCors(currentOrigin string) *configs.CORSWhiteList { for _, whitelist := range global.Config.CORS.WhiteList { - // 遍历配置中的跨域头,寻找匹配项 if currentOrigin == whitelist.AllowOrigin { return &whitelist } diff --git a/backend/middlerware/logger.go b/backend/middlerware/logger.go new file mode 100644 index 000000000..77e2181d4 --- /dev/null +++ b/backend/middlerware/logger.go @@ -0,0 +1,22 @@ +package middlerware + +import ( + "github.com/1Panel-dev/1Panel/app/entity" + "github.com/1Panel-dev/1Panel/global" + "github.com/gin-gonic/gin" +) + +func Logger() gin.HandlerFunc { + return func(c *gin.Context) { + path := c.Request.URL.Path + operateLog := entity.OperateLog{ + Path: path, + IP: c.ClientIP(), + UserAgent: c.Request.UserAgent(), + } + global.DB.Model(entity.OperateLog{}).Save(&operateLog) + c.Next() + } +} + +//TODO 根据URL写操作日志