1234567891011121314151617181920212223242526272829303132333435 |
- package middleware
- import (
- "github.com/flipped-aurora/gin-vue-admin/server/global"
- "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
- "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
- "github.com/flipped-aurora/gin-vue-admin/server/service"
- "github.com/gin-gonic/gin"
- )
- var casbinService = service.ServiceGroupApp.SystemServiceGroup.CasbinService
- // 拦截器
- func CasbinHandler() gin.HandlerFunc {
- return func(c *gin.Context) {
- claims, _ := c.Get("claims")
- waitUse := claims.(*request.CustomClaims)
- // 获取请求的URI
- obj := c.Request.URL.RequestURI()
- // 获取请求方法
- act := c.Request.Method
- // 获取用户的角色
- sub := waitUse.AuthorityId
- e := casbinService.Casbin()
- // 判断策略中是否存在
- success, _ := e.Enforce(sub, obj, act)
- if global.GVA_CONFIG.System.Env == "develop" || success {
- c.Next()
- } else {
- response.FailWithDetailed(gin.H{}, "权限不足", c)
- c.Abort()
- return
- }
- }
- }
|