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.
|
|
|
|
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,"您当前没有权限访问该菜单")
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|