您的位置:首页 > 其它

权限管理

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

系统管理员给用户赋角色,给角色赋菜单。

在多对多的对应上,有两种处理方式,如果存在一个用户对应多个角色,一个角色对应多个用户。即:用户角色是多对多的关系。就会导致查询出来的菜单存在重复。此时有两种解决方式。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: