构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单

简介: 原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单 不知不觉到20讲,真是漫长的日子,可惜最近工作挺忙,要不可以有更多的时间来更新,多谢大家的一路支持.如果你觉得好,记得帮我点击推荐^-^ 我们在之前已经插入一些真实数据,其中包含了一个用户和样例程序SysSample的权限,并实现了用户的登录。

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(20)-权限管理系统-根据权限获取菜单

不知不觉到20讲,真是漫长的日子,可惜最近工作挺忙,要不可以有更多的时间来更新,多谢大家的一路支持.如果你觉得好,记得帮我点击推荐^-^

我们在之前已经插入一些真实数据,其中包含了一个用户和样例程序SysSample的权限,并实现了用户的登录。

但有的朋友对表还是有疑惑,通过下面的linq查询,应该你就没有这个困惑了。

不出意外,我们的菜单栏将只显示样例程序这个模块。

这就简单了,我们已经有了获取菜单栏的类了,只要加入用户参与判断即可,所以我们将修改

IBLL BLL IDAL DAL层的Home类(红色为原来的,绿色为最新修改的)

 List<SysModule> GetMenuByPersonId(string moduleId);

List<SysModule> GetMenuByPersonId(string personId, string moduleId);

---------------------------

public List<SysModule> GetMenuByPersonId(string moduleId)
        {
            return HomeRepository.GetMenuByPersonId(moduleId);
        }

 public List<SysModule> GetMenuByPersonId(string personId, string moduleId)
        {
            return HomeRepository.GetMenuByPersonId(personId,moduleId);
        }

---------------------------

List<SysModule> GetMenuByPersonId(string moduleId);

List<SysModule> GetMenuByPersonId(string personId, string moduleId);

---------------------------

最后看到DAL层,这里是获取菜单逻辑代码

 public List<SysModule> GetMenuByPersonId(string moduleId)
        {
            using (DBContainer db = new DBContainer())
            {
                var menus =
                (
                    from m in db.SysModule
                    where m.ParentId == moduleId
                    where m.Id != "0"
                    select m
                          ).Distinct().OrderBy(a=>a.Sort).ToList();
                return menus;
            }
        }

   public List<SysModule> GetMenuByPersonId(string personId, string moduleId)
        {
            using (DBContainer db = new DBContainer())
            {
                var menus =
                (
                    from m in db.SysModule
                    join rl in db.SysRight
                    on m.Id equals rl.ModuleId
                    join r in
                        (from r in db.SysRole
                         from u in r.SysUser
                         where u.Id == personId
                         select r)
                    on rl.RoleId equals r.Id
                    where rl.Rightflag == true
                    where m.ParentId == moduleId
                    where m.Id != "0"
                    select m
                          ).Distinct().OrderBy(a => a.Sort).ToList();
                return menus;
            }
        }

别忘记在Home的Controller传入用户的ID

预览下效果

果真是我们要的效果

现在要做的就是把之前那些日志管理,异常管理等等加入到数据表中看看效果了。

通过这里你可以熟悉下数据流。

但我总觉得上面的linq语句是可以继续优化的,求linq大神!!!!

目录
相关文章
|
前端开发
10EasyUI 菜单与按钮- 创建链接按钮(Link Button)
10EasyUI 菜单与按钮- 创建链接按钮(Link Button)
122 0
|
数据库
easyui03(tree后台工作)
easyui03(tree后台工作)
|
JavaScript 前端开发
12EasyUI 菜单与按钮- 创建分割按钮(Split Button)
12EasyUI 菜单与按钮- 创建分割按钮(Split Button)
132 0
基于EasyUI的后台管理系统页面原型_示例图_下载地址
基于EasyUI的后台管理系统页面原型_示例图_下载地址
135 0
|
11月前
|
前端开发 关系型数据库 MySQL
Python基于Django框架图书管理系统,Bootstrap框架UI,后台EasyUI框架UI,有登录,实现增删改查的富文本效果
本文介绍了一个使用Python Django框架开发的图书管理系统,该系统采用Bootstrap框架进行前端UI设计,EasyUI框架用于后台UI界面,集成了富文本编辑器,并实现了登录及增删改查功能。
242 1
|
JavaScript 前端开发
11EasyUI 菜单与按钮- 创建菜单按钮(Menu Button)
11EasyUI 菜单与按钮- 创建菜单按钮(Menu Button)
128 0
09EasyUI 菜单与按钮- 创建简单的菜单
09EasyUI 菜单与按钮- 创建简单的菜单
63 0
|
应用服务中间件
EasyUI+JavaWeb奖助学金管理系统[8]-加载角色对应菜单功能实现
本文目录 1. 本章任务 2. 构造测试数据 3. 后端提供查询登录角色对应菜单的接口 4. 后台管理页面加载菜单 5. 测试验证
150 0
EasyUI+JavaWeb奖助学金管理系统[8]-加载角色对应菜单功能实现
EasyUI+JavaWeb奖助学金管理系统[7]-EasyUI经典后台管理系统布局实现
本文目录 1. 本章任务 2. 引入EasyUI 3. 顶部标题栏 4. 左侧导航栏 5. 右侧内容栏 6. 底部版权栏 7. 效果
188 0
EasyUI+JavaWeb奖助学金管理系统[7]-EasyUI经典后台管理系统布局实现
|
弹性计算 .NET 数据库
ASP.NET MVC4网站部署在阿里ECS云服务器(WIndows Server 2012+IIS8环境)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/41747613 首...
1478 0