如何理解流程当中的权限?
type
status
date
slug
summary
tags
category
icon
password
在设计 PaaS 应用端的权限管理模块和审批流程模块时,都遇到了页面权限相关的问题,遂研究了一下这里的交叉点,记录下学习结果。
定义
表单权限:
- 静态的、基础的权限控制
- 定义用户对整个表单的基本操作权限
- 例如:某人是否能查看这类表单、是否能新建记录、是否能编辑所有字段等
- 权限是全局性的,不随具体业务流程的节点变化
- 通常在系统配置或角色管理中设置
流程权限:
- 动态的、随流程相关的权限控制
- 定义用户在特定流程节点的操作权限
- 例如:在工艺单流程中,设计师只能在首个节点编辑设计相关字段,后续节点仅能查看
- 权限会随着流程推进而变化,同一个用户在不同节点可能有不同的权限
- 通常在流程设计器中配置
案例说明
假设有一个采购申请流程:
- 采购专业 A 有采购申请表的"编辑"权限
- 但在流程中:
- 他能在申请节点填写所有信息
- 到了审批节点,即使他有表单编辑权限,也无法修改已提交的内容
- 如果被驳回到申请节点,他又重新获得编辑权限
总结
所以,上述两种权限是相辅相成的:
- 表单(模块)权限是基础门槛,决定用户能否接触这类业务
- 流程权限是运行时控制,确保业务规范有序进行
- 实际操作权限 = min(表单权限,当前节点流程权限)
脑洞
如果一个用户没有 a 表单的阅读权限,那能否在流程设计中将他添加进来作为一个编辑节点呢?
用户必须先具备表单的基础阅读权限,才能被加入到这个表单相关的流程节点中。原因是:
- 权限的基础性
- 表单权限是最基础的权限控制层
- 如果连查看权限都没有,用户根本无法打开或访问该表单
- 这会导致即使被加入流程节点,也无法执行任何操作
- 系统逻辑
- 通常 PaaS 系统在流程设计时会进行权限校验
- 设计流程时,系统应该会禁止或警告添加没有表单基础权限的用户
- 如果强行添加,可能导致流程异常或中断
- 正确的配置顺序
- 先在表单权限管理中赋予用户基础的查看权限
- 然后再将用户添加到流程节点中
- 最后在流程节点中配置具体的操作权限
所以在实际过程中如何真遇到我假设的场景,还是要建议客户:如需某用户参与流程,应该先确保其具备表单的基础查看权限。
Loading...