权限管理

2015.12.9 权限管理

 

先来回顾一下,这段时间老师都讲了什么,

周一,讲了异步传输,二级联动,以省市为例。

周二,讲了异步传输以json作为数据载体。然后是powerdesign的使用,dwr异步传输工具类化。

周三,讲了 权限管理。

作业还有1购物车例子没有做,2json传输没有练习。3Powerdesign现在准备用起来,4dwr没有练习。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系统

【人事专员能够看菜单、对于我的项目来说】

对于角色薪酬专员来讲:查看:个人信息 薪酬管理 

对于角色薪酬经理来讲:查看:1个人信息 2薪酬管理 数据分析

对于角色5人力负责人来讲:查看 :134567

对于角色6公司领导 来讲:查看:1234567

对于角色 7系统管理员 来讲:查看 1234567

原文地址:https://www.cnblogs.com/letben/p/5185317.html