diff --git a/qy-lty-admin/docs/修改记录.md b/qy-lty-admin/docs/修改记录.md index 1471059..d184f77 100644 --- a/qy-lty-admin/docs/修改记录.md +++ b/qy-lty-admin/docs/修改记录.md @@ -25,6 +25,38 @@ +### [2026-05-08] Phase 2(前端)RBAC 收敛 + AI 模型页凭据槽位入口 + +配套服务端 Phase:本 phase **不**触达服务端;与服务端 v1.0 Phase 2「管理端读写接口」commit `46d72b8` 既有契约保持兼容(不引入新契约) +覆盖前端需求:CRED-FE-02、CRED-FE-03 + +- **文件路径**: + - `lib/permissions.ts`(修改) + - `app/ai-model/page.tsx`(修改) +- **修改类型**: 修改(前端 RBAC 矩阵扩展 + 页面入口控件 + 占位 Dialog;纯前端,无新依赖、不动 lockfile) +- **修改内容**: + - `lib/permissions.ts`: + - `PermissionModule` union 末尾追加 `"credential-slot"`,扩为 14 项 + - `PERMISSION_MATRIX["超级管理员"]` 数组末尾追加 `"credential-slot"` + - `PERMISSION_MATRIX["AI模型管理员"]` 数组末尾追加 `"credential-slot"` + - 其他 4 个角色(内容管理员 / 卡牌管理员 / 查看者 / 管理员)数组**逐字不变** + - `getModuleFromPath` 函数体完全不动(凭据槽位是 `/ai-model` 子能力,不占独立路由) + - 顶部「权限矩阵对照表」注释新增一行「凭据槽位」与代码同步 + - `app/ai-model/page.tsx`: + - 文件 line 1 顶部新增 `"use client"` 指令,从 Server Component 转为 Client Component + - 新增 import:`useState` / `useEffect`(react)+ `Dialog` / `DialogContent` / `DialogDescription` / `DialogHeader` / `DialogTitle`(@/components/ui/dialog)+ `KeyRound`(lucide-react)+ `hasPermission`(@/lib/permissions) + - 函数体顶部新增 `mounted` + `isCredentialDialogOpen` 两个 `useState` + 1 个 `useEffect` 设 `mounted` 为 true(复用 `components/sidebar.tsx` mounted 守卫模式避免 SSR 水合不匹配) + - `DashboardHeader` 内部用 `