最近抽空写了小项目通用框架,这里要谈的是系统权限这块。
权限模块表结构设计如下:
t_sys_menu (菜单表)
t_sys_menu_power(菜单权限表,每个菜单页面有多个功能权限,如:增、删、改、查)
t_sys_role (角色表)
t_sys_role_power(角色权限关系表,多对多关系)
t_sys_user (用户表)
t_sys_user_role(用户角色关系表,多对多关系)
t_sys_user_power(用户权限关系表,用户特有权限,多对多关系)
t_sys_department(部门表)
关系图我就不画了,不擅长,说下我的思路就行了:
1.菜单是级联结构,细化到页面(bs结构),每个菜单有多个功能权限。
2.角色与角色之间是平等关系,也就是没有关系。每个角色拥有特有的菜单权限。
3.部门也是级联结构,部门在这里与菜单权限没有关系,只与用户能查看的数据有关系,比如分公司管理员只能管理自己分公司的用户和数据。
4.用户可以拥有多个角色,用户拥有角色决定他的菜单权限,用户也可以拥有特有权限(权限可直接分配给用户)。
那么,问题来了:
某用户给其他用户或角色配置权限的时候,肯定是只能配置自己已经拥有的权限,这是自然的,已实现。
可是,当他新增或修改一个用户时,给那个用户配了自己都没有的角色,那权限不是越配越大了?
然后我想,让他给用户配角色也只能是自己拥有的不就行啦。仔细一想好像不科学啊。
那,这就是问题咯,各位大神有什么办法,求指教啊!!!
界面是这样的:
(用户角色管理-权限配置)
(用户管理)
(用户管理-用户权限配置)
(部门管理)
(菜单管理,这个页面是给自己用,方便开发)