packages/spec/src/contracts/sharing-service.ts 的 ISharingService.canEdit 文档说:
Return true when the principal in context may UPDATE the record (object, recordId). Ownership (widened by write DEPTH) OR a write-level (ShareAccessLevel edit) share. Always true for system context, public objects, and objects with no owner field.
#4647(PR #5124)之后,实现还有第三条:modifyAllRecords 超级用户写旁路(在 ownership / share 之后追问 ISecurityService.hasWriteBypass)。兄弟方法 canDelete 的文档本来就把这条旁路写进去了("ownership (widened by write DEPTH) or the modifyAllRecords super-user bypass ONLY"),所以现在两个方法的契约文档一个提、一个不提,读起来像是 canEdit 故意不含旁路 —— 与实际相反。
修的是一句话:在 canEdit 的 doc comment 里补上旁路分支(措辞与 canDelete 对齐)。
单独开 issue 而不是并进 #4647 的 PR:那个 PR 的任务书明确 packages/spec/** 零改动(spec 是另一条车道),而这处只是 doc comment,没有 schema/类型变化,适合并进任意一个 spec 车道的小 PR。
发现于 #4647 / PR #5124。未认领。
Generated by Claude Code
packages/spec/src/contracts/sharing-service.ts的ISharingService.canEdit文档说:#4647(PR #5124)之后,实现还有第三条:
modifyAllRecords超级用户写旁路(在 ownership / share 之后追问ISecurityService.hasWriteBypass)。兄弟方法canDelete的文档本来就把这条旁路写进去了("ownership (widened by write DEPTH) or themodifyAllRecordssuper-user bypass ONLY"),所以现在两个方法的契约文档一个提、一个不提,读起来像是canEdit故意不含旁路 —— 与实际相反。修的是一句话:在
canEdit的 doc comment 里补上旁路分支(措辞与canDelete对齐)。单独开 issue 而不是并进 #4647 的 PR:那个 PR 的任务书明确
packages/spec/**零改动(spec 是另一条车道),而这处只是 doc comment,没有 schema/类型变化,适合并进任意一个 spec 车道的小 PR。发现于 #4647 / PR #5124。未认领。
Generated by Claude Code