Files
EchoChat/.cursor/rules/project-context.mdc
bujinyuan fa6f1e5c58 feat: 角色等级体系与权限管控实施
- 数据库:auth_roles 表新增 level 字段(1=超管, 10=管理员, 100=普通用户)
- 后端:新增 GetAllRoles/GetUserMaxLevel/SetUserRoles/FindByCodeList DAO 方法
- 后端:SetRolesRequest 替换 AssignRoleRequest,AdminUserInfo.Roles 改为 []RoleInfo
- 后端:所有管理操作(禁用/启用/角色分配/创建用户)强制层级权限校验
- 后端:PUT /users/:id/roles(批量设置角色)+ GET /roles(角色列表)
- 前端:角色管理改为 Checkbox Group 多选,高等级角色禁用
- 前端:禁用/启用按钮受角色层级约束,列表页操作按钮权限管控
- 前端:创建用户对话框角色选项根据操作者等级动态过滤
- 文档:API 文档、设计方案、集成规范、进度文档同步更新

Made-with: Cursor
2026-03-02 15:40:02 +08:00

66 lines
3.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: EchoChat 项目上下文与开发记忆 - 每次新对话自动加载
alwaysApply: true
---
# EchoChat 项目上下文
## 快速恢复上下文
**新对话开始时,必须先读取以下文件恢复项目记忆:**
1. `docs/progress/CURRENT_STATUS.md` — 项目开发进度、已完成 Task、关键技术决策、下一步工作
2. 当前阶段的实施计划文档(位于 `docs/plans/` 目录下)
## 当前进度
- **Phase 1基础设施与用户认证**:✅ 全部完成11 个 Task
- **Phase 2即时通讯**:待制定实施计划
- 分支:`feature/phase1-foundation-and-auth`(待合并到 main
## 项目概述
EchoChat 是一个实时音视频通讯平台,包含三个子项目:
- `backend/go-service/` — Go 后端Gin + GORM + Wire + Redis
- `frontend/` — 前台用户端uni-app + Vue 3.4 + Pinia 2.x
- `admin/` — 后台管理端Vue 3.5+ + Element Plus + Pinia 3.x
## 核心开发规则
1. **前端设计**:必须使用 openskills 安装的 `ui-ux-pro-max` 技能包,脚本绝对路径为 `/Users/bojinyuan/.agent/skills/ui-ux-pro-max/scripts/search.py`。**严禁使用** `.cursor/skills/ui-ux-pro-max.bak/` 目录下的任何文件,该目录已废弃。禁止手动设计系统
2. **工作流**:使用 superpowers 流程控制开发节奏
3. **两端差异**`frontend/` 和 `admin/` 是完全独立的项目,技术栈不需要统一
4. **模块系统**:前端统一使用 ESM`export`/`import`),禁止 CommonJS
5. **Go 常量命名**camelCase`UserStatusActive`),非大写下划线
6. **API 响应**:统一 `{ "code": 0, "message": "success", "data": ... }`
7. **JWT 策略**:有状态 JWTToken 存 Redis按 clientType 隔离:`echo:auth:token:{frontend|admin}:{user_id}`),前后台互不影响
8. **角色等级体系**`auth_roles.level` 字段值越小权限越高1=超管, 10=管理员, 100=普通用户),所有管理操作强制执行层级权限校验
9. **代码注释**所有公开函数、组件、Store 必须有详细注释
9. **文档同步**:代码变更后必须同步更新 docs/ 下相关文档
10. **验证方式**:使用 Playwright MCP 进行页面自动化验证
11. **代码审查**:每个 Task 完成后,使用 `code-reviewer` 子代理进行结构化审查,确保代码质量和计划一致性
12. **完成验证**:使用 `verification-before-completion` 技能,在声称完成前运行验证命令并确认输出
## 前后端联动规范(必须遵守)
> 详细规范见 `docs/conventions/frontend-backend-integration.md`
1. **前后台路由严格分离(最高优先级)**
- 前台用户端 API`/api/v1/auth/*`、`/api/v1/im/*`、`/api/v1/meeting/*` 等
- 后台管理端 API`/api/v1/admin/auth/*`、`/api/v1/admin/users/*` 等
- **禁止任何混用**admin 前端不得调用 `/api/v1/auth/*`frontend 不得调用 `/api/v1/admin/*`
- 新增功能时必须先确认归属哪端,使用对应的路由前缀
2. **Token Redis 存储隔离**:按 `clientType` 隔离:`echo:auth:token:{frontend|admin}:{user_id}`JWT Claims 包含 `client_type` 字段
3. **错误提示统一**:前端所有 HTTP 错误提示必须优先使用后端 `data.message`,禁止硬编码覆盖后端信息
4. **安全防护**:后端登录接口对"用户不存在"与"密码错误"统一返回 401 + "账号或密码错误"
5. **401 场景区分**:前端拦截器区分「登录请求的 401」仅提示错误和「已认证请求的 401」清 Token + 跳转登录页)
6. **响应格式一致**:后端所有响应必须使用 `utils.Response*` 系列函数
7. **业务错误映射**:后端 Controller 的 `handleError` 函数必须覆盖所有已知业务错误,不能忽略 error`_`
## 设计系统
持久化在 `design-system/echochat/` 目录:
- `MASTER.md` — 全局设计规范
- `pages/*.md` — 页面级覆盖规则
- 色板Primary `#2563EB` / BG `#F8FAFC` / Text `#1E293B`