这才是权限管理应有的样子
当前,尽管后台管理系统已十分普及,但它们在权限管理上往往仅具备基础功能。对于更复杂的需求,如细粒度的角色层级权限控制,多数系统显得力不从心。鉴于此,我们设计并开发了一套功能全面的后台管理系统,该系统不仅集成了完善的基于RBAC权限管理机制,并更加细节的处理了权限层级,权限细化到菜单及按钮,通过数据权限将管控到每一行数据,还配备了高效的代码生成功能。本文旨在详细介绍我们系统中权限管理的各项先进功能。
1、用户可归属于多个角色,可以拥有不同角色权限的并集
在给用户分配角色时,可以选择同时归属于多个角色,此时用户同时拥有多个角色的权限,这样的好处是可以将角色拥有的权限细化,比如有张三、李四、王五三个人,张三有修改用户权限,李四有删除用户的权限,可以创建两个角色,一个角色可以修改用户,一个角色可以删除用户。此时王五如果可以同时修改和删除用户,不再需要再创建一个角色同时拥有修改和删除用户的权限,而是只需要给王五同时属于以上两个角色即可。
2、角色划分不同层级(树形结构),父级角色拥有可管控子级角色的权限
角色按照树形结构划分的好处是可以使角色按照不同层级来进行管理,父级角色可以管理和给子级角色授权。
比如给用户张三设置为普通管理员角色,并且张三可以管理角色菜单,此时张三登陆后台后进入角色管理,只能查看和管理普通管理员角色和他的下级角色信息。如下图:
如果张三被赋予管理用户的权限时,此时张三添加用户并给用户授权角色信息时,只能选择普通管理员或普通管理员的下级角色,其它角色则不可被张三授权,如下图所示:
3、当前用户在其它用户分配相关权限时,仅能够将自己已拥有的权限分配给他人,不能越权限授权
此时给用户张三设置为普通管理员角色,张三在给其子角色授权时则只能选择自己拥有的权限授权给其它角色,自己没有的权限则不能被选择,如下图:
4、角色权限有效期和时间段管控
可以给角色设置有效日期或可访问系统的时间段,在有效期和时间段内用户才能使用该角色的权限,过期后将没有操作系统的权限。
5、超细粒度的数据权限划分,数据权限可以按不同功能菜单分别分配
分配数据权限时,可以按不同菜单或操作分别分配不同的数据权限,如下图所示:
以上展示的为分配权限时的操作,下面是不同用户登陆系统后界面展示:
例如超管登陆系统后进入管理用户页面,包含所有管理操作效果如下:
张三登陆后没有修改和删除用户权限,并且只能管理自己所在部门及下级部门的用户:
系统演示地址:
项目地址:
gitee.com/tiger1103/gfast
github.com/tiger1103/gfast
本作品采用《CC 协议》,转载必须注明作者和本文链接
理想的权限设计。而现实中权限期望的是更细颗粒度的控制。某一列是否能看,是打码还是禁用,是能编辑还是能查看。 在能实现这些的基础上,要更简单的应用。而不是要各种 if(have_access) show();
还是RBAC清晰些
看了一下,有参考的地方 :kissing_heart: