zoukankan      html  css  js  c++  java
  • 053医疗项目-模块五:权限设置-将用户操作权限写入Session

     权限管理指的是用户授权,与拦截器没有关系。拦截器只是一个技术,也可以用别的技术来实现的。别人问你权限管理,可不要和人家说什么拦截器。要说用户授权

    前一篇文章是把实现了不同的用户呈现不用的菜单。这一篇文章要实现的是不同的操作权限的控制,因为在菜单下有操作权限,我们现在就控制操作。

    我们的权限拦截就是指各种菜单下的操作也要拦截。只要是不符合自己角色的访问操作都要拦截掉。

    拦截流程如下:

     我们这里不写拦截器,我们这篇文章就是讲一下怎么根据用户的角色来得到用户的操作权限。

    sql如下:

    select bss_sys_operate.method      actionUrl,
           bss_sys_operate.operatename operationName,
           bss_sys_operate.operateid operationId
      from bss_sys_operate
    
     where bss_sys_operate.operateid in
           (
            
            --角色范围内的操作权限集合
            select bss_sys_roleoperate.operateid
              from bss_sys_role,
                    bss_sys_rolesys,
                    bss_sys_rolenode,
                    bss_sys_rolemodule,
                    bss_sys_roleoperate
            
             where bss_sys_role.roleid = bss_sys_rolesys.roleid
               and bss_sys_rolenode.rsid = bss_sys_rolesys.rsid
               and bss_sys_rolemodule.rnid = bss_sys_rolenode.rnid
               and bss_sys_roleoperate.rmid = bss_sys_rolemodule.rmid
               and bss_sys_role.roleid = 'A1657D9C6C7D47B59A99132A5ACE1A2E'
            
            )

    查询结果如下:

     上面查出来的就是卫生局的操作权限。

    Sql写好之后。我们就来写Mapper代码:

    public List<Operation> findOperatByRoleid(String roleid) throws Exception;

      
      <select id="findOperatByRoleid" parameterType="java.lang.String"
        resultType="yycg.base.vo.Operation"
      >
      
      select bss_sys_operate.method      actionUrl,
           bss_sys_operate.operatename operationName,
           bss_sys_operate.operateid operationId
      from bss_sys_operate
    
     where bss_sys_operate.operateid in
           (
            
           <!-- 角色范围内的操作权限集合 -->
            select bss_sys_roleoperate.operateid
              from bss_sys_role,
                    bss_sys_rolesys,
                    bss_sys_rolenode,
                    bss_sys_rolemodule,
                    bss_sys_roleoperate
            
             where bss_sys_role.roleid = bss_sys_rolesys.roleid
               and bss_sys_rolenode.rsid = bss_sys_rolesys.rsid
               and bss_sys_rolemodule.rnid = bss_sys_rolenode.rnid
               and bss_sys_roleoperate.rmid = bss_sys_rolemodule.rmid
               and bss_sys_role.roleid = #{roleid}
            
            )
      
      
      </select>

    写好Mapper代码之后我们来写service代码:

        
        List<Operation> operationlist=this.findOperatByRoleid(roleid);//根据用户的角色id得到用户的操作权限。
        activeUser.setOperationList(operationlist);//给用户赋予他的操作权限。
        
    //根据角色的id查找角色的可用权限

    @Override
    public List<Operation> findOperatByRoleid(String roleid) throws Exception {
    return sysuserMapperCustom.findOperatByRoleid(roleid);
    }

    下一篇文章我们就要写拦截器了

  • 相关阅读:
    hdu 4638 Group 线段树
    hdu 4635 Strongly connected 强连通分量
    hdu 4604 Deque
    hdu 1000 A + B Problem
    数组相关
    文本文件相关
    硬件电路中VCC,VDD,VEE,VSS有什么区别
    VIPM链接LabVIEW问题
    Touch实现轻扫
    touchesMoved 实现拖拽
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/6196074.html
Copyright © 2011-2022 走看看