package auth import ( "github.com/gin-gonic/gin" "ulink-admin/modules/system/service" ) type AuthMiddleWare struct { permissionService service.PermissionService loginService service.LoginService } // AuthCheck 中间件,检查访问权限 func (a AuthMiddleWare) AuthCheck() gin.HandlerFunc { return func(c *gin.Context) { /* authConfig := config.GetAuthConfig() //调用过滤去将放行的请求先放行 if DoSquare(c) { return } user := a.loginService.LoginUser(c) url := c.Request.URL.Path method := c.Request.Method //app用户处理 if user.UserType != systemReq.SystemUserType && !strings.Contains(url, "/app/") { c.JSON(http.StatusOK, gin.H{ "status": 403, "msg": "权限不足,无权限访问", }) c.Abort() return } if authConfig.IsOpen == "0" { return } //admin, _ := c.Get("admin") //超级管理员直接放行 if user.IsAdmin() { return } //获取所有权限集合 allPerms := a.permissionService.GetAllPermission() //不在数据库中进行了权限管理就直接放行 不判断权限 isFlag := false for _, item := range *allPerms { index := 0 ary := strings.Split(item, ":") ary = append(ary[:index], ary[index+1:]...) str := strings.Join(ary, "/") if strings.Contains(url, str) { isFlag = true break } } if !isFlag { return } //权限集合 perms := a.permissionService.GetMenuPermission(user) isHave := false for _, item := range *perms { index := 0 ary := strings.Split(item, ":") ary = append(ary[:index], ary[index+1:]...) str := strings.Join(ary, "/") if strings.Contains(url, str) { isHave = true break } } if !isHave { c.JSON(http.StatusOK, gin.H{ "status": 403, "msg": "权限不足,无权限访问", }) c.Abort() return } fmt.Printf("%s||%s", url, method)*/ } }