权限管理业务界面如下:
数据库方面需要建立六张表:
用户表: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
https://www.cnblogs.com/bendoudou/p/8531931.html