无法使用数据权限控制ListVM显示数据

发布于 2020-03-04 18:08:57

我有Jixiaoyue(绩效月)和EmpDepartment两个类
然后在JixiaoDongtai类中分别对应以上两个类的ID(JxyueID,JXDepartmentID)
在数据权限中设置了EmpDepartment的权限
然后在ListVM里使用DPWhere(loginuserinfo?dataprivileges,x=>x.JXDepartmentID)
然后ListVM里可看见所有部门的动态绩效,求解答~~~

查看更多

关注者
0
被浏览
482
刘亮
刘亮 2020-03-04
专业编码30年

dpwhere现在不能处理多对多的数据权限,其实dpwhere的原理就是帮你拼了一段sql语句,你完全可以自己去拼。LoginUserInfo.DataPrivileges里已经有当前用户可以访问哪个表的哪条数据的数据权限,你可以根据这个自己拼写where语句。

下一版会更新一下dpwhere,让他支持多对多

2 个回答
novker
novker 2020-03-04

贴出多对多的代码,

string has = string.Empty;

        //判断当前登录用户是否分配数据权限
        if (LoginUserInfo.DataPrivileges.Count > 0)
        {
            //判断数据权限是否是“全部权限”
            if (LoginUserInfo.DataPrivileges.Select(x => x.RelateId).ToList()[0] != null)
            {
                
                has = "Nonull";
            }
            else
            {
                has = null;
            }

        }
        else
        {
            has = "Nonull";
        }
        
        

//验证has是否为null,如果为null不执行,

.CheckWhere(has, x => DC.Set<DepPlanning>().Where(y => (LoginUserInfo.DataPrivileges.Select(y => y.RelateId).ToList()).Contains(y.DepartmentId.ToString())).Select(z => z.PlanningCenterId).Contains(x.ID))

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览