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写操作日志