1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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)*/
- }
- }
|