package middleware import ( "github.com/gin-gonic/gin" "gorm.io/gorm" "mc-client-updater-server/internal/service" "mc-client-updater-server/pkg/result" ) func GrantRequired(c *gin.Context) { instName := c.Param("name") // 判断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() }