You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package manage
import (
"github.com/gin-gonic/gin"
"recook/internal/back"
"recook/internal/cache"
"strconv"
"strings"
)
func authorize() gin.HandlerFunc {
return func(c *gin.Context) {
path := c.Request.URL.Path
if strings.Contains(path, "login") {
c.Next()
} else {
id, _ := strconv.Atoi(c.Request.Header.Get("X-Recook-ID"))
if id == 0 {
back.Unauthorized(c)
c.Abort()
return
}
token := c.Request.Header.Get("X-Recook-Token")
if len(token) == 0 {
back.Unauthorized(c)
c.Abort()
}
cacheToken := cache.GetAdminLoginCache(uint(id))
if len(cacheToken) > 0 && cacheToken == token {
c.Next()
} else {
back.Unauthorized(c)
c.Abort()
return
}
//这里要新增权限模块
//fmt.Println(c.Request.URL)
////拿着url查menuid拿id查roleid
//var menu menu2.RecookMenu
//dbc.DB.First(&menu,"path=?",c.Request.URL)
//var manageData manage.UserInfo
//dbc.DB.Select("role_id").First(&manageData,"id=?",id)
//var rolemenuData rolemenu.Rolemenu
//dbc.DB.First(&rolemenuData,"roleid=? and menuid=?",manageData.RoleID,menu.ID)
//if rolemenuData.Id<=0{
// http.Fail(c,"您当前没有权限访问该菜单")
//}
}
}
}