Day78-80 Java框架 SSH案例_ERP(十二)_权限分配

权限系统分析与构建

一.需求与实现思路

  1. .      每个用户登陆进去看到的菜单应该取决于他们所拥有的权限,对于不同的用户,他们进入系统后看到的菜单可能是不同的。
            一个标准的权限系统包括哪些表呢?刚才我们提到了用户、角色、权限,这就是三张表。用户与角色的关系是多对多,对于多对多关系,我们通常会使用中间表来存储它们的关系。那么对应的角色与权限的关系,也会有中间表。因此,权限系统涉及的表就有5个了。
  2. 角色管理:代码生成器已经帮我们生成好了。

二.建立多对多关联

  1. 角色与权限
    1. 修改Role实体类,添加属性menus,表示该角色下拥有哪些菜单权限
    2. 修改role.hbm.xml,添加多对多关联
  2. 用户与角色
    1. 修改Emp(用户)实体类,添加属性roles,表示该用户拥有哪些角色
    2. 修改emp.hbm.xml文件,添加与角色多对多的关联

角色权限设置

一.需求分析

  1. 需求

二.认识tree控件

  1. JS

三.Tree控件-显示菜单

  1. 构建实体类tree
    查看API文档:

    在erp_entity工程中创建实体类Tree
  2. 业务层实现
    IRoleBiz添加接口方法readRoleMenus

    RoleBiz修改:
    引入MenuDao
  3. 修改Tree实体类:
  4. 添加方法实现
  5. Action端编写:
  6. 前端编写
    创建roleMenuSet.html

    创建roleMenuSet.js

    访问:roleMenuSet.html

四.Tree控件-读取权限

  1. 修改IRoleBiz和RoleBiz的readRoleMenus方法,添加参数uuid为角色编号,并修改该方法:
  2. Action修改
  3. 修改roleMenuSet.js的url
  4. 访问页面

五.角色列表

  1. 修改页面roleMenuSet.html
    效果如图:

  2. 修改roleMenuSet.js
  3. 实现角色列表与树控件的联动效果
    修改roleMenuSet.js

    运行结果:
  4. 保存权限
    1. 业务层编写
      给IRoleBiz添加updateRoleMenus方法与实现

      给RoleBiz添加updateRoleMenus方法与实现
    2. Action层编写
    3. 前端编写
      页面修改:

      Js修改: 初始化方法中,添加

用户角色设置

一.需求分析

  1. 一个用户可以指定多个角色,实现思路与角色权限设置相同

二.业务层实现

  1. 在IEmpBiz中添加接口方法:

  2. 在EmpBiz中实现:
    注入RoleDao

    方法实现

三.修改EmpAction

四.创建用户角色设置页面empRoleSet.html

五.创建empRoleSet.js


显示权限菜单

一.需求与实现思路

  1. 要求:用户登陆后只显示他拥有的菜单,多对多关联查询:
  2. 涉及到的实体类:
    用户    角色    菜单
  3. 5个表的查询:
    根据用户ID查询该用户所拥有的菜单,多对多关联查询:
    用户(EMP) => 角色(ROLE)=> 菜单(MENU)
    HQL:
    Select m from Emp e join e.roles r join r.menus m where e.uuid=?

二.根据用户编号查询菜单列表

  1. 修改IMenuDao及MenuDao,添加方法:

  2. 修改IMenuBiz及MenuBiz,添加方法getMenusByEmpuuid

  3. 修改MenuAction,添加方法:

三.根据权限显示菜单

  1. 思路分析:
    菜单clone,只复制该用户下所拥有的菜单,如果有二级菜单的话必须复制其上一级菜单。
  2. 修改MenuBiz,增加方法,用于复制Menu
  3. 增加readMenusByEmpuuid方法

    实现方法
  4. 修改MenuAction中的getMenuTree方法:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值