Skip to content

rfc(identity): 评估 sys_user 档案字段经引擎 hook 委托,放开 edit affordance #2784

Closed

Description

@os-zhuang

背景

sys_user 为 managedBy:'better-auth',CRUD affordances 全关(ADR-0010:直接 ObjectQL 写入绕过哈希管线、不产 sys_account、破坏 session 一致性)。#2766 后所有写操作都有专用端点(create-user / set-user-password / import-users / ban 等),但纯档案字段(姓名等不碰凭据的列)的编辑仍不能走标准表单/data API,UI 一致性欠佳。

评估内容(ADR 级决策,先 RFC 后实现)

  1. 哪些字段可安全放开:候选 = name、phone_number、image 等档案列;永不放开 = email(登录标识)、password/凭据、role/banned、全部 system-managed стamp 列(password_changed_at、must_change_password、locked_until 等)。
  2. 机制:ObjectQL before-update hook 做字段白名单过滤 + 必要时委托 better-auth internalAdapter.updateUser(session 缓存一致性);还是仅放开 edit affordance + 字段级 readonly 控制。
  3. 与 /admin/import-users upsert 的 UPDATE_ALLOWED_FIELDS(PR feat(auth): 管理员直建用户 + 手机号登录 + sys_user 批量导入(#2766 V1/V1.5/V2) #2771)保持同一份白名单,避免两处漂移。
  4. 审计:hook 路径天然被 plugin-audit 捕获(相对专用端点的显式审计是个优势)。
  5. 风险面:放开写口子后 RLS/权限模型对 sys_user 行级更新的覆盖是否充分(谁能改谁的档案)。

产出:ADR + 决策;若通过,再立实现 issue。

相关

Activity

  1. os-zhuang commented on Jul 11, 2026

    @os-zhuang
    ContributorAuthor

    RFC 评估完成,产出已全部落地,关闭本 issue:


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions