概述
审批 Flow 节点 approvers: [{ type: 'role', value: '<业务角色>' }]静默路由到无人:Flow 正常触发,但目标审批人「审批中心」显示「暂无待审批事项」。
根因
packages/plugins/plugin-approvals/src/approval-service.ts:380-389 —— expandRoleUsers() 解析 role 审批人时查 sys_member.role = <value>,而 sys_member.role 是 better-auth 组织角色(仅 owner|admin|member),不认权限集实现的业务角色。:306-316 —— 解析为空时引擎静默回退成把字面量 role:<value> 存进审批人(pending_approvers / sys_approval_approver),没有任何会话身份能匹配 → 落不到人。
影响
{type:'role'} 对权限集业务角色形同失效,且静默无报错(最难排查)。
期望(任一)
role 审批人也解析权限集角色(sys_user_permission_set / sys_permission_set.name);或- 至少解析为空时报错/告警,不要回退成永不匹配的字面量;
- 文档明确
{type:'role'} 仅指组织角色。
已知规避
改用 { type: 'team', value: '...' }(expandTeamUsers() 走 sys_team_member 解析真实 user id)。
来源(项目 dogfood):steedos-labs/os-tianshun-mtc#35
概述
审批 Flow 节点
approvers: [{ type: 'role', value: '<业务角色>' }]静默路由到无人:Flow 正常触发,但目标审批人「审批中心」显示「暂无待审批事项」。根因
packages/plugins/plugin-approvals/src/approval-service.ts:380-389——expandRoleUsers()解析role审批人时查sys_member.role = <value>,而sys_member.role是 better-auth 组织角色(仅owner|admin|member),不认权限集实现的业务角色。:306-316—— 解析为空时引擎静默回退成把字面量role:<value>存进审批人(pending_approvers/sys_approval_approver),没有任何会话身份能匹配 → 落不到人。影响
{type:'role'}对权限集业务角色形同失效,且静默无报错(最难排查)。期望(任一)
role审批人也解析权限集角色(sys_user_permission_set/sys_permission_set.name);或{type:'role'}仅指组织角色。已知规避
改用
{ type: 'team', value: '...' }(expandTeamUsers()走sys_team_member解析真实 user id)。来源(项目 dogfood):steedos-labs/os-tianshun-mtc#35