Repository navigation
fix(setup): position holder picker shows email beside the name - #27427
Merged
Merged
Conversation
Claude-Session: https://claude.ai/code/session_01JQwxbZN5JqZpSuejtNPz6p Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JQwxbZN5JqZpSuejtNPz6p Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
|
domain:ui#2 · os-warren · session_01JQwxbXpF772qWJjojJvRXw 席位核对ACCEPT · 席位意见:Setup › 岗位 › 添加持有人 的用户选择框现在在姓名旁画邮箱列;看不到
|
This was referenced Oct 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Warren · project thread
Fixes #27410
Clause-②: no
Metadata-protocol: none
维护者速读
sys_user.email的人仍只看到姓名列(选择框自身的字段读权限规则);回滚即还原本 PR。ui/packages/app-shell/src/views/metadata-admin/PositionHoldersSection.tsx(RecordPickerDialog的columns与objectSchema)、同目录新测试PositionHoldersSection.pickerColumns-27410.test.tsx。pnpm --dir ui exec vitest run packages/app-shell/src/views/metadata-admin/PositionHoldersSection,预期 4 个文件 17 个用例全绿。What changes
PositionHoldersSectionnow opens itsRecordPickerDialogonsys_userwith:columns: a Name column (name, the fieldsys_userdeclares as itsnameField) and an Email column (email, its login identity), with headers from the section's own en/zh copy.objectSchema:sys_useras the registry serves it, read from theuseMetadata()objects the section already holds (no new fetch). The name column resolves each person's title through it, as a lookup's dropdown does.Nothing else moves. Per the card's ruling, the picker's own read rule (
readableColumns) decides what it draws: the section adds no permission check of its own and reads the email no other way.Why
The picker drew only its default display column, so two people of one name could not be told apart, while the holder rows on the same section already show each holder's email under the name. Row 2 of #27356.
Tests
New file
PositionHoldersSection.pickerColumns-27410.test.tsx, against the realRecordPickerDialog(the existing suites stub it):data-lookup-cell);sys_user_positionrow by name;PermissionProviderpolicy that deniessys_user.emailto the viewer, the picker draws the name column only and no email text.Ablation (one-shot,
node scripts/ablation-replace.mjs --deleteon thecolumnsprop, under the lock): the email-column test goes red (1 failed, 2 passed), and the restore leg reports blob7283c48e2e90equal to HEAD withgit diff HEADempty.Acceptance notes
AssignedUsersSection(a permission set's holders) opens the sameRecordPickerDialogonsys_userwith nocolumns, so its picker lists names only too. Read from the source, not filed here; reported to the seat.Verification
All readings on head
d2e47a1a(origin/main merged).Local runs
pnpm --dir ui exec vitest run --maxWorkers=2 packages/app-shell/src/views/metadata-admin/PositionHoldersSection(lock): Test Files 4 passed (4), Tests 17 passed (17).pnpm --filter @object-ui/app-shell type-check(lock): VERDICT command-exit 0.pnpm --dir ui run type-check:scripts: exit 0.pnpm --dir ui run check:new-line-citations: 0 new citations, exit 0.node scripts/check-sdui-manifest.mjs: exit 0.node scripts/pm/dispatch-gates.mjs --commands: 34 derived families, each run, all exit 0;--ranreconciliation: 34 derived, 34 run, 0 NOT-MEASURED, 0 UNRUN.Changeset:
.changeset/27410-position-holder-picker-email.md,@object-ui/app-shelland@object-ui/consolepatch (app-shell is private and versioned; console ships it).Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses. (CI runs it)main, one pull request.packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.Generated by Claude Code