Skip to content

[plugin-approvals] 审批 {type:'role'} 审批人只查 sys_member.role,解析不到权限集业务角色且静默回退字面量 #2702

Description

@baozhoutao

概述

审批 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions