package auth import ( "github.com/gin-gonic/gin" "net/http" "strings" "ulink-admin/frame" "ulink-admin/modules/system/service" "ulink-admin/pkg/jwt/admin" ) type ServiceAuthMiddleWare struct { PermissionService *service.PermissionService `inject:""` LoginService *service.LoginService `inject:""` } // ServiceAuthCheck 中间件,检查访问权限 func (a *ServiceAuthMiddleWare) ServiceAuthCheck() frame.HandlerFunc { return func(permission *frame.Permission, c *gin.Context) bool { if permission != nil { //获取用户权限,如果用户权限包含了接口权限 user := admin.GetUserInfo(&frame.Context{c}) permissions := a.PermissionService.GetMenuPermission(user) //fmt.Printf("权限%v", permissions) if strings.Contains(strings.Join(*permissions, ",")+",", "*:*:*") || strings.Contains(strings.Join(*permissions, ",")+",", permission.Code) { return true } c.JSON(http.StatusOK, gin.H{ "status": 808, "msg": "无权限操作", }) return false } else { return true } //frame.Throw(frame.BUSINESS_CODE, "没得权限") //判断是否股买优惠券服务 /*url := c.Request.URL.Path method := c.Request.Method sysCfg := config.GetSysCfg() data, err := a.serviceService.MyList() if strings.Contains(url, "coupon") && strings.Contains("PUT,POST,DELETE", method) { if err == nil { if data.Code == 100 { isHave := false for _, item := range data.Result.Data { if item.Service.FeatureSn == sysCfg.CouponSn { isHave = true break } } if !isHave { c.JSON(http.StatusOK, gin.H{ "status": 808, "msg": "没有购买优惠券服务,无权限操作", }) c.Abort() return } } else { c.JSON(http.StatusOK, gin.H{ "status": 808, "msg": "查询到优惠券服务购买状态出错,无权限操作", }) c.Abort() return } } else { c.JSON(http.StatusOK, gin.H{ "status": 808, "msg": "查询到优惠券服务购买状态出错,无权限操作", }) c.Abort() return } } if strings.Contains(url, "integral") && strings.Contains("PUT,POST,DELETE", method) { if err == nil { if data.Code == 100 { isHave := false for _, item := range data.Result.Data { if item.Service.FeatureSn == sysCfg.IntegralSn { isHave = true break } } if !isHave { c.JSON(http.StatusOK, gin.H{ "status": 808, "msg": "没有购买积分服务,无权限操作", }) c.Abort() return } } else { c.JSON(http.StatusOK, gin.H{ "status": 808, "msg": "查询到积分服务购买状态出错,无权限操作", }) c.Abort() return } } else { c.JSON(http.StatusOK, gin.H{ "status": 808, "msg": "查询到积分服务购买状态出错,无权限操作", }) c.Abort() return } }*/ } }