Commit Graph

4 Commits

Author SHA1 Message Date
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
bujinyuan
dd84e50429 docs: 将前后台路由严格分离规则提升为最高优先级
在 project-context.mdc 中明确:
- 前台 API 路径:/api/v1/auth/* 等
- 管理端 API 路径:/api/v1/admin/* 下
- 禁止任何混用,新增功能必须先确认归属

Made-with: Cursor
2026-03-02 14:35:48 +08:00
bujinyuan
c3e8600b24 fix: 前后台 Token Redis 存储隔离,修复同账号互相覆盖问题
核心变更:
- Redis key 加入 clientType 前缀:echo:auth:token:{frontend|admin}:{user_id}
- JWT Claims 新增 client_type 字段区分前台/管理端
- 新增 constants/client_type.go 定义 ClientTypeFrontend / ClientTypeAdmin
- 全链路传递 clientType:Controller → Service → TokenStore → Redis
- 中间件从 JWT Claims 提取 clientType 做 Redis 校验
- 登出只删除当前端 Token,不影响另一端

前端变更:
- 管理端 login API 改为调用 POST /api/v1/admin/auth/login(之前错误调用了前台接口)

文档更新:
- 系统设计文档、实施计划、API文档、开发规范、项目进度全部同步

Made-with: Cursor
2026-03-02 14:28:45 +08:00
bujinyuan
cfb1651480 docs: 新增前后端集成开发规范,更新项目规则与进度文档
- 创建 docs/conventions/frontend-backend-integration.md
  完整规范:API响应格式、HTTP状态码语义、前端错误处理、后端错误处理、
  前后端错误码对照表、安全约束、检查清单
- 更新 .cursor/rules/project-context.mdc 加入前后端联动规范6条
- 更新 CURRENT_STATUS.md 记录修复内容和规范引用

Made-with: Cursor
2026-03-02 14:12:06 +08:00