组织机构和角色混合使用的的系统权限功能设计
系统权限管理正面临优化升级的趋势,传统以角色为核心的授权模式,在面对复杂业务和众多角色时,暴露出理解与操作成本高的问题。未来,类似将审批类操作权限与组织机构挂钩、其他操作权限通过角色授权的混合模式,有望成为提升权限管理效率、降低复杂度的主流方向,推动系统权限管理向更高效、智能的方向发展。
系统权限管理是一个底层且会强影响到系统运转效率的一个重要组成模块。系统权限可细分为数据权限和操作权限,数据权限分为本人、本部门、本公司、跨公司等可选范围,操作权限分我操作页面、操作按钮等可选范围。本文聚焦在操作权限,数据权限部分会在后续其他文章中再具体介绍。
当前系统权限功能的设计导致只要某个系统账号需要在系统进行任何操作,都需要为其授予特定的角色来支持。例如:为某个账号授权了订单一级审批角色,当一个订单被创建并进入到一级审批节点,此时就会使用到组织机构信息,通过组织机构信息来查询订单发起人所属同个组织机构中的一级审批角色并为具备一级审批角色的账号推送待审批订单信息。此过程中组织机构信息仅起到“定位”作用,关键是在“定位”到组织机构后再“定位”拥有对应角色的具体可操作账号信息。如果是部门主任审批,则需要为某个账号授权部门主任审批角色;如果是分管领导审批,则需要为某个账号授权分管领导审批角色等等。
除此之外,系统角色的授权逻辑为系统超级管理员会为小范围组织管理员授权其可分配的角色范围,然后小范围组织管理员再为其范围内各用户授予具体角色清单。虽然角色可能都会有或粗略或详细的解释说明,但系统中会涉及到几十个、上百个甚至几百个角色时,你作何感想,如何处理?此时任何一方的理解和操作成本都很高,此模式不仅增加了各方理解难度,误操作授权可能性激增,而且对角色权限的管理复杂度激增不少。那么如何才能有效降低系统权限管理复杂度呢?
我们都知道:操作权限从另外角度可分为创建类、审批类、导出类、变更类、查看类等部分,审批操作可继续细分为与创建账号同单位的账号审批、以及与创建账号不同单位的账号审批。创建类操作是源头,其他操作都是基于此所进行的延展,并且在业务流中审批流转是很重要的组成部分。而账号归属于特定的组织机构,无论从业务实际还是相关规章制度的规定,都可以通过组织机构明确地获悉某个账号创建的单据应该被组织中哪个岗位来审批,但前提是需明确哪个账号应该有创建单据的角色权限。
因此,审批类操作权限可通过组织机构来支持,创建类、导出类、变更类、查看类等操作权限可通过角色授权来支持。
如此则在涉及到同单位上下级的操作的,可以使用组织机构信息。不同组织机构间跳转则需在进入到新的组织机构时引入角色概念,实现特定账号能够操作来自于上个组织机构的单据。
通过这种组织机构和角色信息的混合使用,我们仅需在业务流起始节点和组织机构发生变化节点做好账号角色授权即可自动流转,账号对应的组织机构调整后能够自动更新流程,不会涉及到角色的变更。(如图1)
图1系统权限功能优化设计
优化前的逻辑是账号绑定角色,角色再绑定可操作权限(包括页面权限、按钮权限)。优化后可将审批类角色权限绑定操作权限更新为组织机构岗位绑定操作权限。在已确定发起人账号所属组织机构信息后,自动联动调整各后续业务流中审批节点操作权限,并为对应账号自动授予页面和按钮的操作权限,其可根据组织机构的调整自动更新。
此时在同组织甚至跨组织内,角色所起作用是通过所需角色来筛选备选可发起业务流账号,然后再通过组织机构来筛选满足要求的特定账号信息。通过如此设计,可将操作权限分为两类:
1)角色授权管控操作权限;
2)组织机构管控操作权限。
此种优化可以达到至少如下3种目的:
规避由于业务流中缺少拥有特定角色账号导致业务流卡死情况,保证了各个业务节点都有对应操作账号;
仅需对各业务流起始节点授予角色权限,操作清晰、便捷,降低了误操作、超范围授权等异常现象;
大幅度降低角色清单数量(降低约52.5%),提高了角色授权的效率。