浅谈角色与权限
项目开发中,经常会涉及到一些基础开发,如组织机构管理,人员管理,权限管理等,这些是应用系统非常重要的基础组成部分,正因为大多应用系统都会用到这些组件,许多朋友如吉日想到了开发一个通用组件来出售,今天看到了郑州朋友许飞的文章,略有所感,也写一点关于这方面的分享。
一个供多人使用的应用程序,通常会对使用者加以区分,如超级管理员,管理员,普通用户等,也有些是如领导,员工之类的,不同的人在系统中可以做的事情是不同的,如超级管理员就可以查看管理员的操作日志,管理员可以增加普通用户,那么如果将这些操作简单抽象出来就是所谓的权限不同了,我们可以说能够进入后台的人只能是具备管理权限的人。也可以再做抽象,就是将超级管理员,管理员,普通用户当作是角色。这里我将角色跟权限分了两种设计方式来说。
人-权限
这种一般适用于小型系统,简单实用,每一个权限对应一个code,例如删除用户就是deluser,这个人如果有这个code就有权限,没有就不能执行删除用户动作。
人(deluser) ==>可以执行===>删除用户模块(deluser)
如张三(adduser,deluser)
李四(adduser)
那么,李四没有删除用户模块的code就不能执行删除用户动作。
人-角色-权限
这种方式呢是,对权限的进一步抽象,例如删除用户和添加用户都是管理员做的事情,那么就将这集中权限抽象出来我们叫管理员角色,还有普通用户角色等等。
具体应用是
管理员角色:删除用户,添加用户,添加文章
普通用户:浏览用户,浏览文章
测试用户:添加文章,浏览文章
将角色分配给人时:
张三:管理员
李四:普通用户
两种设计各有好处,可根据系统的复杂度来选择。本问只是简单说了一些想法,欢迎交流。