• Javaweb权限管理设计思路


    权限管理业务界面如下:

    数据库方面需要建立六张表:

    用户表:user(用于存放用户的相关属性) id,登录名,用户姓名。。。

    角色表:role(用于存放角色):roleId,roleName

    用户-角色表:user_role(记录每一个用户具有哪些菜单权限):userId,roleId

    权限表:popedom(用于存放权限相关):mid,pid,name,url,icon,taeget,isparent,isMenu(左侧权限列表是用z-tree实现)

    角色-权限表:role_popedom(记录每一个用户具有的角色权限):roleId,mid,pid

     角色是关联用户和权限的桥梁

    一、遍历角色下拉菜单

      List<Role> roleList = RoleService.findRoleList();

      request.setAttribute("roleList",roleList);

    二、查询所有的权限,返回list集合,遍历在页面的权限分配上

      List<Popedom> popedomList = RoleService.findPopedomList();

      request.SetAttribute("poprdpmList",popedomList);

      难点分析:1:一个权限占一个tr,父节点显示在这个tr的右边的td中,当前父节点的所有的子节点显示在左边的一个td中。

           2:复选框(选择角色类型):选父子全选;取消父,子全取消;取消子:最后一个取消,父也取消。(jquery goselect())。

    三、角色关联权限

      1.遍历所有的权限 List<Popedom> list

      2.获取角色id,查询角色权限关联表,获取当前角色所有的功能权限,list<RolePopedom>

      分析:

        1.用list遍历所有的角色权限,如果有则复选框被选中。

        2.在popedom对象中添加一个flag

         如果 flag = 1,则此时页面复选框被选中

         如果 flag = 2,则此时页面复选框未被选中

        3.设置flag的值

         遍历List<Popedom> list,获取每一个功能权限,如果每个功能权限和当前角色具有的权限相匹配,则flag=1,否则flag=2;

    四:角色用户的查询(多对多)

        1.角色关联用户,遍历所有的用户 List<User> list

        2.获取角色id,查询角色表,获取角色信息,role,

        获取当前角色下有几个用户,获取集合

        遍历List<User> list,获取系统中每个用户。

        如果每个用户和当前角色具有的用户匹配,则flag=1,否则=2

  • 相关阅读:
    使用Stream流递归 组合树形结构
    MySQL 8 通用表表达式
    sa-token 权限认证
    先更新缓存还是先更新数据库?
    钉钉 回调事件 消息加解密
    commons-io
    stream和parallelstream的区别
    消除if...else
    springboot 扩展xml请求和响应
    springboot admin 邮箱
  • 原文地址:https://www.cnblogs.com/bendoudou/p/8531931.html
Copyright © 2020-2023  润新知