权限设计是 B 端系统设计中一个至关重要的环节。有关权限设计的内容浩如烟海,笔者根据平时的项目实践经验,总结出 B 端系统权限设计的以下几点心得,共分为三大部分:
- 权限设计的定义;
- B 端系统权限设计的分类;
- B 端系统权限设计的方法。
其中第三部分为本文的重点,详细介绍了功能权限和数据权限的设计方法。关于权限设计的用户管理、用户组管理、角色管理、权限管理等内容,主要是列表页、编辑页、详情页等页面流程以及增删改查等操作,本文不再赘述。
更多相关干货:
权限设计是指系统为解决某一具体的权限分配问题而进行的设计。
为什么需要分配权限呢?一般是出于职位职责和数据安全两个方面的考虑。
例如,一个客服平台的质检系统需要管理员、质检员、坐席等不同职位,不同职位担任的职责均不相同,这就需要通过功能权限划分进行管理。
同时,考虑到系统的数据安全性,不同账号被允许查看的数据范围也不相同。管理员可以查看并操作全量数据,而坐席只能查看个人数据,因此,需要设计数据权限。
B 端系统权限主要分为两类:功能权限和数据权限。
功能权限是指用户登录系统后可以操作哪些菜单、哪些页面以及哪些页面元素。例如,质检员登录 W 客服平台的 AI 质检系统后,可以在质检详情页对 AI 质检结果进行增删改查,而坐席人员只能查看不能操作。因此,就页面的功能权限而言,二者是不一样的。
数据权限是指用户登录系统后可以查看的数据范围,即能查看多少数据,什么类型的数据。例如,W 客服平台的 AI 质检系统的质检记录列表,管理员能查看所有坐席人员的质检记录,而坐席人员只能查看自己的质检记录。因此,二者的数据范围不同。
我们在做权限设计时,一定要区分系统的功能权限和数据权限,不要糅合在一起。
1. 如何设计 B 端的功能权限
RBAC 模型
RBAC 模型(RBAC,Role-Based Access Control)是指基于角色的访问控制,该理论于 1995 年由计算机科学家 Ravi Sandhu 提出来的。主要描述了一套用户、角色、权限的设计理论,已被业界广泛使用。
RBAC 模型理论的核心思想是:在用户与权限之间增加一个媒介,即角色。通过给每个用户赋予一个或多个角色,再给每个角色分配相应的权限,从而将角色关联的权限赋予给用户。
为什么要引入“角色”这个概念呢?为了更好地说清楚 RBAC 模型的核心思想,我们来看个 B 端设计案例。W 客服部门做了一个 AI 质检系统,起初由于业务量少,质检系统只安排了 1 个质检员小明,让他负责审核 AI 质检结果并确认质检。管理员给小明创建了系统账号,并直接绑定了质检权限。
后来,随着业务量的不断增加和坐席团队的日益壮大,W 客服部门已增至几十个质检员,每次有新增的质检员,管理员都需要给其绑定相应的权限,后续有修改也无法进行批量操作,需要对每一个账号操作一遍。这样,管理员的重复性工作太多,工作效率大打折扣。
试想,如果设置一个角色,并把相关权限赋予该角色,那么在添加新账号的时候,只需将该账号绑定该角色,就能拥有该角色所具有的权限。如果需要调整权限,也无需操作每个账号,只需修改该角色绑定的权限即可,所有账号的权限跟着改变,这将极大地提高管理员的工作效率。
关于 RBAC 模型的核心思想,图示如下:
关于 RBAC 模型,还有很多延展性理论。例如:根据模型的复杂度,又可分为 RBAC0、RBAC1、RBAC2、RBAC3。其中,RBAC0 是上面介绍的基础理论。后面几个涉及到角色继承、角色约束、用户组等概念,我们可根据自己业务的实际情况选择合适的理论模型,在此不再赘述。
根据 RBAC 模型理论,我们怎么设计 B 端系统的功能权限呢?
①设计合理的角色。合理的角色设计是权限设计的前提。在此基础上,只需要配置每个角色能查看哪些菜单,访问哪些页面,操作哪些页面元素就行。
例如,通过业务分析,W 客服平台的 AI 质检系统的角色有:管理员、质检员、坐席、游客。管理员负责系统配置和管理。质检员负责对 AI 质检结果进行检查和确认。坐席可查看自己的质检结果,提出复议。游客可登录系统查看质检模块介绍。
②明确需要做权限控制的功能点,以权限表的形式罗列出来。
功能权限包括菜单权限、页面权限和页面元素权限。将需要做权限控制的功能点以菜单、页面、页面元素的层级罗列出来。如果菜单、页面有多个层级,则将每个层级都罗列出来。以下表格是 W 客服平台的 AI 质检系统的智能质检模块需要做权限控制的功能点:
③列出角色,找到权限与角色之间的对应关系,完善权限表。我们再把 W 客服平台的 AI 质检系统的角色列在权限表后面,并勾选每个角色拥有的权限,完善角色与权限的对应关系,具体图示如下:
从以上权限表,我们可以看出:
- 在质检记录列表页中,管理员和质检员这两个角色可以操作所有筛选条件,而坐席只能操作“时间段”、“客户名称”、“客户手机号”、“状态”4 个筛选条件。
- 在质检详情页中,质检员可以操作“添加质检类目”、“添加质检项”、“删除质检类目”、“删除质检项”、“确认质检”、“提交质检评论”、“编辑质检评论”、“删除质检评论”、“查看质检评论”、“查看复议”11 个按钮;管理员能操作“查看质检评论”、“查看复议”2 个按钮;坐席能操作“查看质检评论”、“提出复议”、“编辑复议”、“删除复议”、“查看复议”5 个按钮。
以权限表的形式将各角色与功能权限一一对应呈现出来,清晰明了,不容易遗漏。
2. 如何设计 B 端系统的数据权限?
数据权限是建立在功能权限基础之上的。没有功能权限,就不会有数据权限。
例如,某个角色在 W 客服平台的 AI 质检系统中如果不能查看质检记录列表,自然也谈不上能看到多少数据量的问题。
关于数据权限,一般包含两种情况。
一种是无组织架构的数据权限。这类数据权限设计相对简单。根据不同的业务情况,可以选择直接在创建角色时选定相应的数据权限范围,也可以将规则以文字描述的形式罗列在权限表后面。
例如,W 客服平台的 AI 质检系统各角色间不涉及上下级的层级架构,因此,只需在功能权限表后新加一栏数据权限,将各角色的数据权限规则描述出来即可,具体图示如下:
第二种是有组织架构的数据权限。
组织架构是指,一个组织整体的结构。企业的组织架构是企业的流程运转、部门设置及职能规划等最基本的结构依据。
例如,A 公司营销部门的组织架构为:营销总监下设营销部经理和业务部经理,经理分别下设两个主管,主管下设专员,上级领导下级,下级对上级负责。具体图示如下:
A 公司营销部的业务诉求是:营销总监能查看营销部的所有数据,部门经理能查看本部门的所有数据,部门主管能查看所有下属的数据,专员只能查看自己的数据。
那我们如何通过组织机构树进行数据权限设计呢?
①根据业务诉求,我们创建管理员、部门管理员、部门主管、普通用户 4 个角色,并定义这 4 个角色在组织机构树中的权限范围,具体如下表所示:
②给相应人员创建账号,并将对应的角色赋予账号,具体图示如下:
③系统通过读取这棵组织机构树上的节点来实现数据权限的控制。
- 账号 0 被赋予管理员角色,该账号处于整棵组织机构树根节点的位置,且数据权限是“当前节点及其所有子节点”,因此,账号 0 可以查看整个营销组织的数据,并能对其进行增删改查等操作。
- 账号 1 被赋予部门管理员角色,该账号处于营销部经理的根节点,且数据权限是“当前节点及其所有子节点”,因此,账号 1 可以查看营销部的所有数据,并能对其进行增删改查等操作。
- 账号 2 被赋予部门主管角色,数据权限是“当前节点及其所有子节点”,因此,账号 2 可以查看本人及其下属的所有数据,并能对其进行增删改查等操作。
- 账号 3 被赋予普通用户角色,数据权限是“当前节点”,因此,账号 3 只能查看并操作本人的数据。
至此,根据组织机构树已实现对整个营销部门的数据权限管理。
本文探讨了权限设计的定义、类型,着重介绍了功能权限和数据权限的设计方法。然而,这些只是权限设计的冰山一角。在接下来的 B 端系统的设计生涯中,期待我们更多的理论探索和实践验证!
复制本文链接 文章为作者独立观点不代表优设网立场,未经允许不得转载。
发评论!每天赢奖品
点击 登录 后,在评论区留言,系统会随机派送奖品
2012年成立至今,是国内备受欢迎的设计师平台,提供奖品赞助 联系我们
AI绘画艺术风格设计
已累计诞生 650 位幸运星
发表评论 已发布4条
↓ 下方为您推荐了一些精彩有趣的文章热评 ↓