编辑导读:权限系统可以从字面上理解,赋予不同的用户不同的权限。比如管理员可以添加或者删除账号,普通员工只能读写数据。笔者以钉钉为例,拆解权限体系和工作流程,希望对你有所帮助。
在B端产品设计从0到1的过程中,有一些基本的内容是无法回避的,比如人事制度、账号制度、权限制度、工作流程制度等等。不过这些系统都比较成熟,能玩花的地方不多。对于这部分,可以利用落后,学习行业内的产品是怎么做出来的。
这里给大家一个思路。SaaS产品经理可以尝试从非竞争产品中寻找设计灵感。本文主要讨论权限系统和工作流。单从这两个通用模块来看,感觉OA系统体验不错。下面以钉钉为例,拆解权限体系和工作流程,也是平时工作的总结。
01权限系统,RBAC(基于角色的访问控制)
权限可以按系统字面理解,给不同的用户不同的权限。比如管理员可以添加或者删除账号,普通员工只能读写数据。传统权限系统的设计将采用RBAC模型和基于角色的访问控制模型。如果没有这种RBAC模型,用户将直接与权限绑定。
(用户权限)
这个简单的系统非常好理解,人员改动很小就可以直接用于系统。但是,当人事或权限发生变化时,问题就出来了。上图就是一个例子。当吕霄离职时,达索被提升并享有吕霄的所有权利,此时会有很大的变化。根据RBAC的说法,将会有一个三层结构:用户-角色-权限。通过增维解决低维灵活性不足的问题。RBAC将会是这个样子。
(用户-角色-权限)
路径可以是管理员,也可以是组长,然后路径就拥有了管理员和组长的所有权限。如果吕霄离开,达索可以与管理员绑定,然后与团队领导绑定。此时,角色和权限之间的关系不需要改变。
RBAC有很多变种,比如互斥的角色,比如有上下级关系的角色。请参考博客《RBAC权限系统的分析、设计与实现》。
让我们看看它是如何工作的。
(钉钉经理列表页面)
(钉钉管理器编辑页面)
(钉钉经理添加人员页面)
这是钉钉后台的管理系统。在子管理员页面,会有添加管理组,添加管理组人员,设置管理组管理员,设置权限等。管理组有一些默认的管理组,也可以由用户添加。操作顺序可以是:
(钉钉管理器页面流程)
美甲产品是巨大的。作为平台产品,这里的权限主要是针对不同应用的访问和使用。钉钉管理组就像一个角色,成员代表用户,最后为角色配置权限。引入角色将用户和权限解耦的好处是,角色和权限的直接关系不会因为任何员工的离职和入职而受到影响。管理层要做的就是把人扔进相应的管理组。
钉钉这部分的管理一步到位,完成用户-角色-权限的配置。如果想更有条理,可以先完成角色和权限的映射配置,再给角色添加人员。
除了用户-角色-权限的形式,可能还有更复杂的问题。
比如权限冲突,路径有两个角色,一个是管理员,一个是团队领导,团队领导有解雇员工的权限,管理员没有解雇员工的权限。那么path最后应该有权力解雇员工吗?
这里可以考虑优先考虑角色。如果发生冲突,则以优先级较高的角色对应的权限为主。
再比如角色群问题。一个角色可以被分配相应的权限,一组角色也应该被分配权限。如下图:

(用户-角色-权限,用户-角色组-权限)
例如:
钉钉项目组作为一个角色组,可以由项目经理、前端工程师、产品经理等几个角色组成。角色组有自己的权限,角色也有自己的权限。用户仍然与角色绑定在一起。在角色组中使用时,会有对应角色组和角色的权限。
在这里,基于user-role-permission的父类,可以派生出很多子类。如果这部分角色处理不当,很可能会影响到第二部分提到的工作流程,这里算是比较完善的设计了。
02工作流,BPM(业务流程管理)
工作流程也可以分为五个阶段,即:
我们在产品中经常用到的是申请和审批,属于业务流程的设计。
工作流中涉及的角色有:申请发起者、批准者、抄送者、执行者。
根据业务情况,有条件的分行也会涉及。比如报销金额超过100W,需要总经理审批,低于1000元的,上级领导审批就可以了。如果请假时间超过30天,需要人力资源主管的批准,如果请假时间少于3天,直线主管的批准可以等待。
让我们来看看有保证的工作流程。钉钉的工作流程是通过可视化编程来完成的,其实和前面说的低码属于同一类产品,钉钉的工作流程设计和低码平台的氚云、明道云很像。对于钉钉布局低码,也可以由此看出必然性。
(钉钉工作流程页面)
(钉钉工作流添加节点页面)
我们以钉钉请假审批为例。我们可以看到钉钉的休假工作流包含了分支节点,可以判断申请条件。这一过程应该在活动框架的基础上加以完善。会有一个请假表单按照设定的工作流程流转,表单引擎相关的部分我们就不展开了。我们专注于流程设计。
钉钉设计,可以动态添加审批、抄送、执行、分支节点。这字面上的意思是每个人都应该能够理解。其实我想说的是,设计流程的时候有一个很重要的原则。流程的可重用性。
看一个问题。
比如卢晓是R&D一部员工,萧山是R&D二部员工,达索是R&D三部员工,三个部门是平行部门,各自领导不同。那么,吕霄、肖山和达索三个人的请假流程应该如何设计呢?
这里,我们将使用流程可重用性的原则。三个人的部门是平行的。即使三个人的领导不一样,审批的人不一样,三个人也要共用一套流程。可能是:发起人->:直线领导->:HR->;结束。因此,在工艺设计中实现工艺的重用不是一件简单的事情。
其实钉钉给出的设计思路可以通过接地气来解决问题。也可以对比一下企业微信。两个产品在这部分审批人的选择上的交互还是挺像的。我们来具体看一下。
相比这一块,钉钉思考的情况更全面,所以这部分内容对于需要设计流程的B端产品来说是非常好的学习案例。
我自己也做过一些工艺工作。以下是我的感受。
因为要把流程定义留给用户,用户可能会设计出各种奇怪的业务流程,B端产品必须有非常高的灵活性和极度的抽象性来支持这些流程。
所以这部分其实是考验产品经理的三种能力:业务需求的抽象能力,产品落地交互的具体能力,咨询中提到的MECE熟练度。市场上做出来的好产品,提供的是地面上的变现,这也是一个可以节省我们很多时间的环节。
说白了就是向别人学习的过程,要搞清楚原来产品背后的逻辑。比如钉钉里的选择器,为什么要给那么多选项,我们自己的产品需要那么多选项吗?这些都是你要想清楚的。
03 权限系统和工作流存在要素重叠把权限系统和工作流放一起写,因为两者会有一些重叠。认真看文章的朋友应该会发现,角色这个词贯穿了这两个部分。我们来看看,如果一个B端产品需要从0到1的设计,会发生什么?
(权限系统-工作流设计流程)
我们创建的角色可以用于在权限系统中分配权限,也可以作为工作流中审批的执行者。角色的本质是一层抽象。抽象的好处在于用户和权限的解耦,用户和审批者的解耦。抽象会带来更多的复用性。
04 最后在设计B端产品的权限和工作流程时,强烈建议你看看钉钉、企微等OA系统。看OA产品,会发现OA系统对权限、角色、工作流程、玩法都非常清晰,是一个非常好的学习方向。
目前舒菲的审批功能似乎弱于小微企业和钉钉,这和产品定位有关系。舒菲强在效率提升,钉钉强在办公管理,小微企业强在关系链接,产品的基因会决定产品功能。
不过我相信飞书能很快赶上钉钉和小企业的开拓性探索。毕竟有后发优势。
现在SaaS是一个很热的领域,C端产品从0到1设计产品的机会越来越少。SaaS产品经理将有更多机会设计从0到1的产品。在这个过程中,工作流和权限系统几乎是不可或缺的。
之后可以借鉴这些成功的产品,看看这些连间接竞品都算不上的产品,取长补短,发挥后发优势,节省时间更快迭代产品。
本文由@忙偷贤原创发布。每个人都是产品经理。未经许可,禁止转载。
图片来自Unsplash,基于CC0协议。








