先说一下今天为什么选择这张图作为这篇文章的展示图,因为今天是特殊的节日,是‘程序员’节,这张图更适合程序员的表情,祝福程序员节日快乐。
今天的课程已经是第五节课了,不知道我的文章你认真看了没有,如果你认真看了,我相信你一定有所收获,因为在写每篇文章时,我都费很大力气去整理思路,即使文章写得有些杂乱,但是流程他是对的,而且按照我的想法去设计也是不会错的。我不希望你们完全照搬照抄,我希望的是我的文章可以带给你们全新的思路,我希望你们会一直看下去,因为每一篇文章我都是用心去写的,而且,每一篇文章我都是查询很多资料,并且根据自己的实践经验总结的,如果你选择相信我,那么我会给你们带来不一样结果。
今天课程标题已经标明了,主要设计权限管理模块,权限管理其实对于每个网站后台系统都是必备的,不管是erp、crm、oms、wms四大基本系统需要权限,其他系统同样也需要,那么说到权限大家都有自己理解,就是给不同人分配不同任务,我们系统权限同样做的事情也是给不同人分配不同任务。
对于技术人员来说,提起权限大部分人想到的都是RBAC模型(Role-Based Access Control),然而对于不懂技术人员不需要强迫自己去理解这个RBAC,
你只要理解给谁分配什么样的权限就可以了,给谁:当然指的是人,权限:当然指的是可以做的事情,如果没有给你分配权限,你就是不能做的。
举例说明:扣扣大家都不陌生,我们在扣扣新建一个群组,我给你分配一个管理员身份,你可以踢人,发表文章,但是作为普通用户你就没有权利踢人,发表文章,这就是权限的作用。
当我们为自己公司后台设计权限管理模块时,你可以简单理解为,某某主体 在 某某领域 有 某某权限。
1.主体可以是用户,可以是角色,也可以是一个部门。
2.领域可以是一个模块,可以是一个页面,也可以是页面上的按钮。
3.权限可以是“可见”,可以是“只读”,也可以是“可用可操作”(如按钮可以点击)。
其实就是Who、What、How的问题。
接下来通过基本关系与注意事项两点开始介绍权限管理。
一、基本关系
1、介绍两个图设计区别
看图一个是用户对应权限,一个是用户对应角色,角色对应权限,两者有什么不同呢?
如果你们公司项目,涉及的人员与权限都是固定不会改变,并且人员与权限数量较小你可以使用第一种方法,后期设计数据表结构还会简单些。
反之如果你们公司人员,权限不是固定的,那么你想想,如果后期添加一个用户进来,你得再次分配权限,如果一万个人进来,你得每个人都重新分配不同权限,但是有了角色,你可以把一部分一份分配到一个角色里,给角色分配权限就可以了。
以上两点就是二者区别。
2、三者关系
用户与角色可为多对一或多对多的关系,当一个用户的角色为多对多时,当前用户的权限是多个角色的并集。
3、实例展示
用户列表
角色列表
权限列表
二、注意事项
1、在一个产品或系统中,部分角色可能是需要隔离的、不允许被同时赋予一个人的。跟大家熟知的“不能既是‘运动员’又是‘裁判员’ ”一个道理。
2、限制还有可能是数量上的,比如一个产品组中必须有且只有一个管理员,不允许删除或再分配管理员角色,仅允许将负责人角色变更。
3、首先需要知道,一般产品的权限由页面、操作和数据构成。页面与操作相互关联,必须拥有页面权限,才能分配该页面下对应的操作权限。数据可被增删改查。页面权限优于操作和数据权限。
4、正常情况下,一定要先能查看某个模块或操作,其它的增删改操作才有意义。因此在设计时,应在获取查看权限前限制其它权限的配置,或者配置其它权限时默认赋予查看权限。查看权限优先于增删改权限。
文章素材有借鉴网站的,如有侵权,请联系我,我会适当改进,谢谢~
长按二维码关注我