mc-client-updater-server/internal/api/v1/middleware/grant.go

39 lines
858 B
Go
Raw Normal View History

2022-10-04 00:36:01 +08:00
package middleware
import (
"github.com/gin-gonic/gin"
2024-01-07 15:13:35 +08:00
"gorm.io/gorm"
"mc-client-updater-server/internal/service"
"mc-client-updater-server/pkg/result"
2022-10-04 00:36:01 +08:00
)
func GrantRequired(c *gin.Context) {
instName := c.Param("name")
2024-01-07 15:13:35 +08:00
// 判断instance name是否存在
srv := service.NewInstanceService(c)
res := result.NewResult(c)
instEntity, err := srv.GetInstanceByName(instName)
if err == gorm.ErrRecordNotFound {
res.InvalidInstance(instName)
return
} else if err != nil {
res.InternalServerError("查询实例对象时出现错误")
return
}
c.Set("instance", instEntity)
// 判断grant_code是否合法
grantCode := c.GetHeader("GrantCode")
if grantCode == "" {
res.Unauthorized()
return
}
grantEntity, err := srv.GetGrantByToken(grantCode)
if err != nil {
res.Unauthorized()
return
}
c.Set("grant", grantEntity)
c.Next()
2022-10-04 00:36:01 +08:00
}