拆解权限系统和工作流 工作的时候突然很想要怎么办

编辑导读:权限系统可以从字面上理解,赋予不同用户不同的权限,比如管理员可以增删账户,普通员工只能读写数据 。本文作者以钉钉为例,拆解权限系统和工作流,希望对你有帮助 。

拆解权限系统和工作流 工作的时候突然很想要怎么办

文章插图
在B端产品从0到1设计的过程中,有一些基础内容是绕不开的,比如人员系统、账号系统、权限系统、工作流系统等等 。但是这些系统也相对成熟,可以玩出花的地方也不多 , 对于这部分我们倒可以占据后发优势 , 去学习行业内的产品是怎么做的 。
这里给大家提供一个思路,SaaS的产品经理可以试着从非竞品找到设计灵感 。我们这篇文章主要聊一下权限系统和工作流 , 单从这两个通用模块来看,感觉OA系统有比较不错的心得 。我们以钉钉为例做一个权限系统和工作流部分的拆解,也算对平时工作的一个总结 。
01 权限系统,RBAC(Role-Based Access Control)
权限系统可以从字面上理解 , 赋予不同用户不同的权限,比如管理员可以增删账户,普通员工只能读写数据 。常规权限系统设计会用到RBAC模型,基于角色的访问控制模型 。在没用到这个RBAC模型的情况下,用户会和权限直接绑定 。
拆解权限系统和工作流 工作的时候突然很想要怎么办

文章插图
(用户-权限)
这个对于简单系统是非常易懂的,对于人员变动不大的系统也是可以直接上手使用的 。但是当有人员变动或者权限变动的时候 , 问题就出来了 。以上图为例,小路离职 , 索大升职,享有小路的全部权利,这个时候会产生比较大的变动 。而根据RBAC,那么就会有三层结构,用户-角色-权限 。通过升维解决低维灵活度不够的问题 。RBAC会是下面这个样子 。
拆解权限系统和工作流 工作的时候突然很想要怎么办

文章插图
(用户-角色-权限)
小路可以是管理员,也可以是组长,然后小路具有管理员和组长的所有权限 。如果小路离职了的话,索大可以和管理员进行绑定 , 再和组长绑定 。这时候角色和权限的关系是不需要改变的 。
RBAC还有很多的变体,比如互斥角色、比如角色具有上下级关系,可以参考《RBAC权限系统分析、设计与实现》这个博客 。
我们看看钉钉的实现方式 。
拆解权限系统和工作流 工作的时候突然很想要怎么办

文章插图
(钉钉子管理员列表页面)
拆解权限系统和工作流 工作的时候突然很想要怎么办

文章插图
(钉钉子管理员编辑页面)
拆解权限系统和工作流 工作的时候突然很想要怎么办

文章插图
(钉钉子管理员添加人员页面)
这是钉钉后台的管理系统 , 在子管理员页面里会有添加管理组 , 添加管理组人员,设定管理组的管理员,设置权限等 。管理组会有一些默认的管理组 , 也可以由用户新增 。操作顺序可以是:
(钉钉子管理员页面流程)
钉钉产品已经非常庞大了 , 作为一个平台产品,这边的权限主要是针对不同应用的访问和使用 。钉钉的管理组就像一个角色 , 而成员就代表着用户,最后为角色配置权限 。引入角色对用户和权限进行解耦的好处是,任何员工的离职入职,都不会影响到角色和权限直接的关系 。而管理要做的 , 只是把人丢到对应的管理组即可 。
钉钉对于这部分的管理是一步到位的,完成了用户-角色-权限的配置 。如果想要条理更清晰一些,可以先完成角色和权限的映射配置,再往角色里添加人员就可以了 。