mirror of
https://github.com/jerryWangor/iris_web.git
synced 2025-09-27 04:05:55 +08:00
70 lines
3.2 KiB
Go
70 lines
3.2 KiB
Go
// +----------------------------------------------------------------------
|
||
// | EasyGoAdmin敏捷开发框架 [ 赋能开发者,助力企业发展 ]
|
||
// +----------------------------------------------------------------------
|
||
// | 版权所有 2019~2022 深圳EasyGoAdmin研发中心
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed LGPL-3.0 EasyGoAdmin并不是自由软件,未经许可禁止去掉相关版权
|
||
// +----------------------------------------------------------------------
|
||
// | 官方网站: http://www.easygoadmin.vip
|
||
// +----------------------------------------------------------------------
|
||
// | Author: @半城风雨 团队荣誉出品
|
||
// +----------------------------------------------------------------------
|
||
// | 版权和免责声明:
|
||
// | 本团队对该软件框架产品拥有知识产权(包括但不限于商标权、专利权、著作权、商业秘密等)
|
||
// | 均受到相关法律法规的保护,任何个人、组织和单位不得在未经本团队书面授权的情况下对所授权
|
||
// | 软件框架产品本身申请相关的知识产权,禁止用于任何违法、侵害他人合法权益等恶意的行为,禁
|
||
// | 止用于任何违反我国法律法规的一切项目研发,任何个人、组织和单位用于项目研发而产生的任何
|
||
// | 意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、
|
||
// | 附带或衍生的损失等),本团队不承担任何法律责任,本软件框架禁止任何单位和个人、组织用于
|
||
// | 任何违法、侵害他人合法利益等恶意的行为,如有发现违规、违法的犯罪行为,本团队将无条件配
|
||
// | 合公安机关调查取证同时保留一切以法律手段起诉的权利,本软件框架只能用于公司和个人内部的
|
||
// | 法律所允许的合法合规的软件产品研发,详细声明内容请阅读《框架免责声明》附件;
|
||
// +----------------------------------------------------------------------
|
||
|
||
package middleware
|
||
|
||
import (
|
||
"easygoadmin/app/model"
|
||
"easygoadmin/app/service"
|
||
"easygoadmin/conf"
|
||
"easygoadmin/utils"
|
||
"easygoadmin/utils/common"
|
||
"encoding/json"
|
||
"github.com/kataras/iris/v12"
|
||
"reflect"
|
||
"strings"
|
||
)
|
||
|
||
// 登录验证中间件
|
||
func CheckAuth(ctx iris.Context) {
|
||
|
||
// 放行设置
|
||
urlItem := []string{"/captcha", "/login"}
|
||
whiteItem := []string{"/", "/main", "/index", "/userInfo", "/updatePwd", "/logout"}
|
||
if !utils.InStringArray(ctx.Path(), urlItem) && !strings.Contains(ctx.Path(), "static") {
|
||
// 判断不在白名里,判断不是超级管理员
|
||
if !service.IsSuperAdmin(ctx) && utils.IsLogin(ctx) && !utils.InStringArray(ctx.Path(), whiteItem) {
|
||
// 如果登录了就检查权限
|
||
user := service.GetUserInfo(ctx)
|
||
// 查询该用户的权限列表
|
||
val := utils.RedisClient.Get(utils.GetRedisUidKey(user.Id, conf.USER_MENU_LIST)).Val()
|
||
mlist := make([]model.Menu, 0)
|
||
json.Unmarshal([]byte(val), &mlist)
|
||
flag := false
|
||
for _, v := range mlist {
|
||
if reflect.DeepEqual(v.Url, ctx.Path()) {
|
||
flag = true
|
||
}
|
||
}
|
||
if flag == false {
|
||
ctx.JSON(common.JsonResult{
|
||
Code: -1,
|
||
Msg: "没有权限",
|
||
})
|
||
return
|
||
}
|
||
}
|
||
}
|
||
ctx.Next()
|
||
}
|