Watch Star Fork

李玉宝 / OpenAuth.NetC#LGPL-2.1GVP

权限管理存在BUG(比如为用户分配角色) #ICQS3

进行中
四色鬼 成员  创建于

设定 部门A 有角色 aa 用户a1,a2(部门A为普通部门,a1为部门管理员。可以管理本部门用户) 部门B 有角色 bb 用户a(部门B为系统开发人员,bb有所有权限)

用户a1具有用户管理权限。给用户a2分配角色。

点击为用户分配角色按钮,默认会带出所有角色:aa,bb。

存在权限管理风险。

类似的还有a1,可以管理所有部门的人员。。。。

513604_jermey 共1人参与
展开详细操作日志 收起操作日志
四色鬼 开始了 任务 2017-05-03 16:37
四色鬼 创建了 任务 2017-04-12 09:53

评论 (3)

513604_jermey
四色鬼 2017-04-13 07:54 成员
        /// <summary>
        /// 加载某分类的所有Resources
        /// </summary>
        public string Load(Guid categoryId, int page = 1, int rows = 30)
        {
            //if (categoryId.ToString() == "00000000-0000-0000-0000-000000000000")
            //    return "";
            return JsonHelper.Instance.Serialize(_app.Load(AuthUtil.GetUserName(), categoryId, page, rows));
        }

在上面if语句的位置(代理里面有好多处)进行判断,判断用户是否具有Guid 的管理权限。

513604_jermey
四色鬼 2017-04-16 07:32 成员
 //获取用户部门列表
            var Orgs = AuthUtil.GetCurrentUser().Orgs;

            //如果用户没有任何部门的权限,返回空值
            if (Orgs.Count > 0)
            {
                //如果传入的guid为0值,将用户的第一个部门赋值给orgId
                if (orgId == Guid.Empty)
                {
                    orgId = Orgs[0].Id;
                }
                else
                {
                    var Count = Orgs.Where(a => a.Id == orgId).Count();
                    if (Count == 0)
                    {
                        return "";
                    }
                }

            }
            else
            {
                return "";
            }
513604_jermey
四色鬼 2017-05-03 16:45 成员

问题重现步骤。

新建角色:测试角色;属于:集团总部=》研发部=》研发小组。

分配模块:用户管理,部门管理,角色管理。

分配相应菜单。

新建用户:测试;分配角色“测试角色”

用测试用户登录。


点击部门管理,默认展开所有部门,用户可以跨部门管理其他部门,也可以管理上级部门。

点击用户管理,角色管理,存在类似问题。


点击用户管理,为用户分配角色。默认展开系统所有角色。用户可以自己给自己提高权限。

登录 后才可以发表评论

负责人
标签
未设置
里程碑
关联分支
开始时间
未设置
结束时间
未设置
置顶选项
优先级

搜索帮助