第3章 用户角色与权限划分

用户场景

在企业审批流中,不同角色承担截然不同的职责,常见场景如下:

  • 发起人:填写报销单,提交后等待审批。
  • 审批人:收到待办通知,审核内容并决定通过/驳回。
  • 抄送人:申请通过后自动收到通知,无需操作。
  • 会签人:与主审批人并行或顺序签字,必须全部同意才能进入下一步。
  • 代理审批人:原审批人请假时临时接手,权限与审批人相同。
  • 系统管理员:配置模板、设定审批链、维护角色映射。

业务问题

组织在角色管理上频繁遇到以下痛点:

  1. 权限交叉混乱:一个人既是审批人又是抄送人,系统无法正确分发待办。
  2. 会签缺乏超时机制:部分会签人长期不处理,导致流程卡死。
  3. 代理审批权限难以回收:代理人结束后仍残留待办,造成安全隐患。
  4. 管理员操作无审计:配置错误无法追溯,影响合规审计。
风险提示:角色定义不清晰会直接导致审批链路循环、漏单、数据泄露,务必在需求阶段对齐业务方。

用户访谈(摘录)

角色典型原话业务隐含诉求
发起人“我只想知道找谁批,最好一步到位”审批路径透明,避免多次驳回
审批人“出差期间我的待办能自动转给同事吗?”支持代理审批配置且可设置有效期
会签人“我们部门必须所有人同意,否则我不放心”会签模式支持一票否决或须全票通过
系统管理员“改个角色要改十几个表单,太容易出错了”集中管理角色模板,批量更新

需求拆解

将用户诉求转化为可配置的权限模型,核心是通过 RABC 实现角色‑操作分离。

角色权限范围触发条件可配置项
发起人创建/撤回申请流程启动时可见模板
审批人通过/驳回/附加意见审批节点激活审批顺序、多人投票规则
抄送人接收消息,不可操作流程终态(通过/驳回)抄送时机、消息渠道
会签人独立审批(同审批人)会签节点激活串签/并签、完成比例
代理审批人临时继承审批人权限设置代理时间+范围代理起止日期、可代理流程
系统管理员全局配置、审计日志登录管理后台角色映射、权限策略

方案表达

采用基于角色的访问控制(RBAC)设计,每个用户绑定一个或多个角色,流程节点引用角色而非具体用户。

核心设计原则:
1. 角色与组织架构解耦,支持动态人员调整
2. 代理审批使用时间窗口,到期自动回收
3. 会签节点支持按通过比例(如100%全票通过或过半即过)

配置示例(JSON 片段,定义审批节点):

{
  "nodeType": "approval",
  "assigneeRole": "finance_manager",
  "mode": "multi_sign",
  "passCondition": "ALL",
  "timeoutDays": 3,
  "rejectAction": "RESTART",
  "proxy": {
    "enabled": true,
    "proxyRole": "finance_vice_manager",
    "maxPeriodDays": 30
  }
}

指标验证

  • 审批时效:平均审批时长降低30%以上(代理机制减少等待)。
  • 权限错误率:因角色混淆导致的审批回退占比 < 2%。
  • 代理命中率:代理自动接管比例 > 80%。
  • 管理员配置效率:新建一个审批流耗时 < 15分钟(含角色选择)。

验收标准

编号验收项预期结果
AC-01发起人能查看自己可用的模板模板列表仅显示已授权给发起人角色的流程
AC-02审批人可设置代理并指定有效期代理生效期间原审批人待办自动转发,到期恢复
AC-03会签节点全票通过才放行任一不同意则驳回至发起人
AC-04抄送人在流程结束后收到通知邮件/企微消息包含审批结果和备注
AC-05系统管理员可导出角色权限对照表CSV文件包含角色名称、权限代码、备注

交付物模板

以下为角色定义清单模板,项目团队可依此产出具象文档:

角色ID角色名称所属模块可执行操作排除操作备注
ROLE_INITIATOR发起人费用报销创建、撤回、修改审批、抄送设定默认可见全部费用类型
ROLE_APPROVER审批人费用报销通过、驳回、加签删除流程委托代理时需填写原因
ROLE_CC抄送人通用查看通知,无需操作无每流程最多5人
ROLE_COUNTERSIGN会签人合同审批通过、驳回委托代理必须全票通过
ROLE_PROXY代理审批人通用同审批人操作不可设置再代理代理期限≤30天
ROLE_ADMIN系统管理员全局配置模板、角色映射、日志查询不可编辑本人绑定角色操作日志保留180天

角色关系与权限划分示意图

审批流角色关系与权限边界 审批流引擎 发起人 审批人 会签人 抄送人 代理审批人 系统管理员 虚线:临时/管理关系;实线:常规模块交互