fix
wangpengfei
2023-07-17 3fb4ddbe96c663f861efef4df87b5d4bc773d81e
middleware/casbin_rbac.go
@@ -1,6 +1,7 @@
package middleware
import (
   "aps_crm/constvar"
   "aps_crm/pkg/contextx"
   "aps_crm/pkg/ecode"
   "aps_crm/service"
@@ -15,6 +16,28 @@
// CasbinHandler 拦截器
func CasbinHandler() gin.HandlerFunc {
   //return func(c *gin.Context) {
   //   waitUse, _ := utils.GetClaims(c)
   //   ctx := new(contextx.Context).SetCtx(c)
   //   //获取请求的PATH
   //   path := c.Request.URL.Path
   //   //obj := strings.TrimPrefix(path, global.GVA_CONFIG.System.RouterPrefix)
   //   obj := strings.TrimPrefix(path, "")
   //   // 获取请求方法
   //   act := c.Request.Method
   //   // 获取用户的角色
   //   sub := strconv.Itoa(int(waitUse.AuthorityId))
   //   e := casbinService.Casbin() // 判断策略中是否存在
   //   success, _ := e.Enforce(sub, obj, act)
   //   if !success {
   //      // response.FailWithDetailed(gin.H{}, "权限不足", c)
   //      c.Abort()
   //      ctx.Fail(ecode.NoPowerErr)
   //      return
   //   }
   //   c.Next()
   //}
   return func(c *gin.Context) {
      waitUse, _ := utils.GetClaims(c)
      ctx := new(contextx.Context).SetCtx(c)
@@ -26,6 +49,12 @@
      act := c.Request.Method
      // 获取用户的角色
      sub := strconv.Itoa(int(waitUse.AuthorityId))
      // 超级管理员不需要验证权限
      if waitUse.UserType == constvar.UserTypeSuper {
         c.Next()
      }
      e := casbinService.Casbin() // 判断策略中是否存在
      success, _ := e.Enforce(sub, obj, act)
      if !success {