权限管理
2016-02-08 22:40
162 查看
2015.12.9 权限管理
先来回顾一下,这段时间老师都讲了什么,
周一,讲了异步传输,二级联动,以省市为例。
周二,讲了异步传输以json作为数据载体。然后是powerdesign的使用,dwr异步传输工具类化。
周三,讲了 权限管理。
作业还有1、购物车例子没有做,2、json传输没有练习。3、Powerdesign现在准备用起来,4、dwr没有练习。5、异步登录没有练习。
那今天知道有哪些没有做,先做个标记,主要是周一晚上那个 事儿做得不对,整个节奏,都没有把握好。
明天又会讲解 上传和下载。东西很多很庞杂。
今天先处理权限,其他的东西都先别做!要不然会越落越多。
先创建 表,利用powerdesign
用户表:
User
user_id user_name user_password user_type[先设置3个]
角色表:
Role
role_id role_name menu_id
菜单表:
Menu
mune_id menu_name menu_url menu_note
系统管理员给用户赋角色,给角色赋菜单。
在多对多的对应上,有两种处理方式,如果存在一个用户对应多个角色,一个角色对应多个用户。即:用户角色是多对多的关系。就会导致查询出来的菜单存在重复。此时有两种解决方式。
老师给出的实现方式,这里面不能用list.contains();因为这里面调用的还是父类的equals()方法。里面的比较利用的是地址进行的比较。所以每次拿出来进行比较的时候,都是新的,就实现不了去重的意义。所以可以通过遍历比较id这是一种方式。再者就是通过在重现compare方法,实现contains的比较意义。
这里想要重新设计一下这里的模式,就是用户 角色 菜单。
Role table
1---人事专员
2---人事经理
3---薪酬专员
4---薪酬经理
5---人力资源部负责人
6---公司领导
7---系统管理员
Menu_id menu_name menu_url note
menu 1--- 个人信息 --- userinfo,jsp
menu 2--- 薪酬管理 --- salary,jsp
menu 3--- 人事管理 --- humanresourse,jsp
menu 4--- 招聘管理 --- employment,jsp
menu 5--- 培训管理 --- training,jsp
menu 6--- 数据分析 --- dataanalyses,jsp
menu 7--- 系统管理 --- system,jsp
对于 角色1 人事专员 来讲:它能够查看的有1个人信息,3人事管理,7系统管理
对于 角色2 人事经理 来讲:她能够查看的有 1个人信息,3人事管理,6数据分析,7系统
【人事专员能够看菜单、对于我的项目来说】
对于角色3 薪酬专员来讲:查看:1 个人信息 2 薪酬管理
对于角色4 薪酬经理来讲:查看:1个人信息 2薪酬管理 6 数据分析
对于角色5人力负责人来讲:查看 :134567
对于角色6公司领导 来讲:查看:1234567
对于角色 7系统管理员 来讲:查看 1234567
先来回顾一下,这段时间老师都讲了什么,
周一,讲了异步传输,二级联动,以省市为例。
周二,讲了异步传输以json作为数据载体。然后是powerdesign的使用,dwr异步传输工具类化。
周三,讲了 权限管理。
作业还有1、购物车例子没有做,2、json传输没有练习。3、Powerdesign现在准备用起来,4、dwr没有练习。5、异步登录没有练习。
那今天知道有哪些没有做,先做个标记,主要是周一晚上那个 事儿做得不对,整个节奏,都没有把握好。
明天又会讲解 上传和下载。东西很多很庞杂。
今天先处理权限,其他的东西都先别做!要不然会越落越多。
先创建 表,利用powerdesign
用户表:
User
user_id user_name user_password user_type[先设置3个]
角色表:
Role
role_id role_name menu_id
菜单表:
Menu
mune_id menu_name menu_url menu_note
系统管理员给用户赋角色,给角色赋菜单。
在多对多的对应上,有两种处理方式,如果存在一个用户对应多个角色,一个角色对应多个用户。即:用户角色是多对多的关系。就会导致查询出来的菜单存在重复。此时有两种解决方式。
public List getMenuByRoleId(String roleId) { List<Menu> list = rd.getMenuByRoleId(roleId); List<Menu> list2 = md.getMenuInfo(); for (int i = 0; i < list.size(); i++) { Menu r1 = list.get(i); for (int j = 0; j < list2.size(); j++) { Menu r2 = list2.get(j); if(r1.getId() == r2.getId()){ r2.setIsok(true); break; } } } return list2; }
老师给出的实现方式,这里面不能用list.contains();因为这里面调用的还是父类的equals()方法。里面的比较利用的是地址进行的比较。所以每次拿出来进行比较的时候,都是新的,就实现不了去重的意义。所以可以通过遍历比较id这是一种方式。再者就是通过在重现compare方法,实现contains的比较意义。
这里想要重新设计一下这里的模式,就是用户 角色 菜单。
Role table
1---人事专员
2---人事经理
3---薪酬专员
4---薪酬经理
5---人力资源部负责人
6---公司领导
7---系统管理员
Menu_id menu_name menu_url note
menu 1--- 个人信息 --- userinfo,jsp
menu 2--- 薪酬管理 --- salary,jsp
menu 3--- 人事管理 --- humanresourse,jsp
menu 4--- 招聘管理 --- employment,jsp
menu 5--- 培训管理 --- training,jsp
menu 6--- 数据分析 --- dataanalyses,jsp
menu 7--- 系统管理 --- system,jsp
对于 角色1 人事专员 来讲:它能够查看的有1个人信息,3人事管理,7系统管理
对于 角色2 人事经理 来讲:她能够查看的有 1个人信息,3人事管理,6数据分析,7系统
【人事专员能够看菜单、对于我的项目来说】
对于角色3 薪酬专员来讲:查看:1 个人信息 2 薪酬管理
对于角色4 薪酬经理来讲:查看:1个人信息 2薪酬管理 6 数据分析
对于角色5人力负责人来讲:查看 :134567
对于角色6公司领导 来讲:查看:1234567
对于角色 7系统管理员 来讲:查看 1234567
相关文章推荐
- 文章标题
- 面试笔试杂项积累-leetcode 171-175
- Linux 中的权限 -- 0755 和 0644
- Netty精粹之JAVA NIO开发需要知道的
- json
- Stanford 机器学习 Week2 作业: Linear Regression
- ajax异步传输
- c#_灰度图,二值化,腐蚀算法等具体实现
- [软件人生]也谈谈支付宝五福
- svn
- lol空白名
- 安卓开发——如何让控件充满剩余父类容器
- 页面常见效果js实现
- 游戏服务端究竟解决了什么问题?
- 学习activity笔记
- u-boot-2016.01移植笔记之先让u-boot可以编译成功以及添加2440单板
- javascript中的内置对象
- Delphi 中的字符串
- lasrevarTredronIeerTyraniB.94
- 敏捷测试(三)从一个实例详解敏捷测试的最佳实践