Skip to content

feat(platform-objects): A3 — 用户页 Permission Sets + Business Units 分配入口 (#2920) - #2927

Merged
os-zhuang merged 1 commit into
mainfrom
claude/authz-a3-user-assignment
Jul 14, 2026
Merged

feat(platform-objects): A3 — 用户页 Permission Sets + Business Units 分配入口 (#2920)#2927
os-zhuang merged 1 commit into
mainfrom
claude/authz-a3-user-assignment

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

A3 — 用户页一站式分配入口 (tracking #2920)

让管理员在单个 sys_user 记录页完成三类分配。Positions tab 已存在,本 PR 补齐两个同款纯 SDUI tab,tab 顺序为 Positions → Permission Sets → Business Units

改动

packages/platform-objects/src/pages/sys-user.page.ts — 在 Positions tab 之后新增两个 record:related_list + Add picker 的 tab:

  1. Permission Sets(直接授权)

    • junction sys_user_permission_set(id-keyed 的 Field.lookup),relationshipField: 'user_id'(无 relationshipValueField)。
    • Add picker 绑定 sys_permission_set,linkField: 'permission_set_id',labelField: 'label'
    • 列:permission_set_id / organization_id / granted_by / created_at
    • 服务端 audience-anchor(D5/D9)与 delegated-admin(D12)门禁的拒绝原因会显示在 Add 对话框(与 sys_position 页一致)。
  2. Business Units(业务单元归属)

    • junction sys_business_unit_member(id-keyed 的 Field.lookup),relationshipField: 'user_id'(无 relationshipValueField)。
    • Add picker 绑定 sys_business_unit,linkField: 'business_unit_id'sys_business_unitlabel 字段,故 picker 按其显示字段 name 标注。
    • 列:business_unit_id / function_in_business_unit / is_primary / created_at

两个 tab 均补齐 en / zh-CN / ja-JP / es-ES 四语言标签,与现有 Positions tab 处理方式一致。

junction 字段类型确认

两个 junction 的 user_id(以及 permission_set_id / business_unit_id)都是 Field.lookup(...),即 id-keyed,与 sys-user Positions tab、sys-position Permission Sets tab 的 id-keyed 模式一致 —— 因此不需要relationshipValueField(该字段仅用于 sys-position Holders 那种 name-keyed junction)。

验证

  • pnpm --filter "@objectstack/platform-objects..." build ✅(CJS + ESM + DTS 全过;单独 build 时的 metadata-core 报错是仓库既有的依赖构建顺序问题,与本改动无关,带依赖构建即通过)。
  • pnpm --filter @objectstack/platform-objects test ✅ 80/80 通过。

changeset

.changeset/a3-user-assignment-tabs.md(minor)。

关联 #2920 · 这是 A3(用户页一站式分配入口)

🤖 Generated with Claude Code

https://claude.ai/code/session_019QRUvVfpvSycAHMMF2xTxs


Generated by Claude Code

#2920)
sys_user 记录页新增两个纯 SDUI record:related_list tab,让管理员在单个
用户页完成三类分配:岗位(已有 Positions)、直接权限集授权、业务单元归属。
- Permission Sets: junction sys_user_permission_set(id-keyed,
relationshipField=user_id),picker 绑定 sys_permission_set
(linkField=permission_set_id)。
- Business Units: junction sys_business_unit_member(id-keyed,
relationshipField=user_id),picker 绑定 sys_business_unit
(linkField=business_unit_id,按 name 标注)。
tab 顺序 Positions → Permission Sets → Business Units,四语言标签齐全。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QRUvVfpvSycAHMMF2xTxs
@vercel

vercelBot commented Jul 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 14, 2026 3:47pm

Request Review

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation tooling size/s labels Jul 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/platform-objects.

2 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/plugins/packages.mdx(via @objectstack/platform-objects)
  • content/docs/ui/setup-app.mdx(via @objectstack/platform-objects)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang marked this pull request as ready for review July 14, 2026 23:45
@os-zhuang
os-zhuang merged commit 02a014b into mainJul 14, 2026
16 checks passed
@os-zhuang
os-zhuang deleted the claude/authz-a3-user-assignment branch July 14, 2026 23:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/stooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@os-zhuang@claude