最近读到有关后台权限管理这块的文章,觉得有点意思,遂去做了一下调研。我了解到,后台系统与saas实际上有许多共通之处,于是去调研了一下saas。大型的saas软件之所以能够满足一个大企业的工作需求,如单租户、多租户,一个重要的原因就是权限的分级系统十分完善,但即使如此,仍有一部分需求是无法满足的。
目前世界上比较大的saas企业,国外如Salesforce、zendesk、微软的Dynamic365,国内如Udesk、美洽、环信之类。
权限系统
权限基本上可以分为此【功能权限/数据权限】两类,每种权限基本上都可以设置成【可读/不可读/可编辑】三种状态,这三种也基本上可以满足大部分需求了。
功能权限:即某个功能的权限,如一个按钮是否可点击、一个模块是否可用等等。常见场景如,运营人员应该是没有财务信息这个模块的。
数据权限:即某些数据的权限,如某个字段是否可见、某个图表是否可见等。常见的场景如,在数据统计中心这个模块,运营人员是不能见到财务报表的,而RD应该是看不到每日新增用户量的,管理员就应该所有数据都能看到和操作。
权限的管理系统包含两方面,一是权限,二是用户。两者的对应关系,构成了整个系统。
权限
1.单个的功能权限
管理功能权限的最小单位,一般是某个页面的操作,如点击、拖拽等。如权限abcd。
2.权限模块
功能模块层级上高于最小单位的权限集合。这种情况是取决于后台整体的架构,如权限ab从属于敏感词库。敏感词库就是一个权限模块,可以直接把权限模块分配给用户,用户将拥有模块中的所有权限。此处模块相当于是一个入口,权限关闭相当于隐藏入口。
3.权限集
相比权限模块是由于架构原因自成的,权限集是由管理员自定义设置的。如可以把权限a和权限c提出来新建一个权限集Q,有该权限集的用户可以使用这两个权限。
4.数据权限
某些数据或者字段、对象的权限,包括是否可读、是否可写。
5.简档
来自于Saleforce,可以对应多个权限集。这一块与用户付费、许可证有关,暂且不细说。
用户
用户管理的思路与权限的类似,即分级、分类和单独配置。
1.单个用户
即给单个用户配置某个权限或权限集。不过这种配置方法维护起来不方便,实际中使用应该很少(这一句是我询问了几个同行根据情况yy的)。如何不方便也很明显,这里就不说了。
2.用户小组
把若干用户拉到一起组成一个小组,或者贴上同一个标签(效果一样),形成一个权限所有体。一个用户应该是可以同时在多个小组的。如公司临时做一个新活动,只需要一个产品和一个运营,把产品狗b和喵d拉一起组个队。
3.角色
每个用户尽可以分配一个角色,一个角色下可以有多个用户。角色分从属关系,上级的角色应该默认拥有所有下级的权限的,即可以查看或编辑下级角色的权限内容。产品组长显然是可以随时查看编辑产品狗b的权限内容的。
小结
分别看用户和权限,整体并不复杂。不过分散开来,用户-权限的对应关系就有很多种了。而且一般的app后台,根本用不到这么多种对应关系,即使是salesforce这种量级的saas企业也没有全部都应用。小企业可能更多关注成本与效率,最短时间内完成功能即可(大白话:能用就行)。