最近抽空写了小项目通用框架,这里要谈的是系统权限这块。
权限模块表结构设计如下:
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.用户可以拥有多个角色,用户拥有角色决定他的菜单权限,用户也可以拥有特有权限(权限可直接分配给用户)。
那么,问题来了:
某用户给其他用户或角色配置权限的时候,肯定是只能配置自己已经拥有的权限,这是自然的,已实现。
可是,当他新增或修改一个用户时,给那个用户配了自己都没有的角色,那权限不是越配越大了?
然后我想,让他给用户配角色也只能是自己拥有的不就行啦。仔细一想好像不科学啊。
那,这就是问题咯,各位大神有什么办法,求指教啊!!!
不知道你这是多大的一个系统,是不是打算服务于全人类的?
简单一点,有权限进行权限分配的人就是管理员,其他人没事别操那份闲心。
复杂一点,这已经得是集团公司级别的了,再考虑一个大神、N个小神就行了。
至于让所有人可以分配权限,那是吃饱了。
楼上的正解,分配权限就一个管理员就行了。每个人都能分配权限,那还要权限管理干什么
权限控制的目的是控制别人的权限,不是让所有人都可以进行权限控制。1楼的说的很对,没事别吃太多
如果权限要做继承分配,那就是
A创建的用户,角色权限只能<=A的权限范围。
另外,你这个数据权限怎么搞?同样是部门经理,A经理管A部门,B经理管B部门的情况。
再往深里,这个权限又怎么继承分配?