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
This commit is contained in:
@@ -81,6 +81,8 @@
|
||||
|
||||
- 前台用户和后台管理员共用 `auth_users` 表
|
||||
- 通过 `auth_roles` 和 `auth_user_roles` 区分角色(user / admin / super_admin)
|
||||
- `auth_roles.level` 字段实现角色等级层级管控(值越小权限越高:1=超管, 10=管理员, 100=用户)
|
||||
- 管理操作强制执行"高等级管理低等级"规则(操作者 level 必须 < 目标用户 level)
|
||||
- 前台 API 路由:`/api/v1/auth/*` — 仅需 JWT 验证
|
||||
- 后台 API 路由:`/api/v1/admin/*` — JWT 验证 + 角色检查双重中间件
|
||||
|
||||
@@ -235,6 +237,7 @@ CREATE TABLE auth_roles (
|
||||
id SERIAL PRIMARY KEY,
|
||||
code VARCHAR(50) UNIQUE NOT NULL,
|
||||
name VARCHAR(50) NOT NULL,
|
||||
level INT NOT NULL DEFAULT 100,
|
||||
description VARCHAR(200) DEFAULT '',
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||
);
|
||||
@@ -243,14 +246,15 @@ COMMENT ON TABLE auth_roles IS '角色表,定义系统中所有
|
||||
COMMENT ON COLUMN auth_roles.id IS '角色唯一标识,自增主键';
|
||||
COMMENT ON COLUMN auth_roles.code IS '角色代码,唯一标识:user=普通用户,admin=管理员,super_admin=超级管理员';
|
||||
COMMENT ON COLUMN auth_roles.name IS '角色显示名称,如"普通用户""管理员""超级管理员"';
|
||||
COMMENT ON COLUMN auth_roles.level IS '角色等级,值越小权限越高:1=超管, 10=管理员, 100=普通用户,预留间隔便于扩展';
|
||||
COMMENT ON COLUMN auth_roles.description IS '角色描述说明';
|
||||
COMMENT ON COLUMN auth_roles.created_at IS '创建时间';
|
||||
|
||||
-- 预置角色数据
|
||||
INSERT INTO auth_roles (code, name, description) VALUES
|
||||
('user', '普通用户', '系统普通用户,可以使用聊天、会议等功能'),
|
||||
('admin', '管理员', '后台管理员,可以管理用户、监控会议等'),
|
||||
('super_admin', '超级管理员', '最高权限管理员,可以管理角色和系统配置');
|
||||
-- 预置角色数据(level 值越小权限越高)
|
||||
INSERT INTO auth_roles (code, name, level, description) VALUES
|
||||
('user', '普通用户', 100, '系统普通用户,可以使用聊天、会议等功能'),
|
||||
('admin', '管理员', 10, '后台管理员,可以管理用户、监控会议等'),
|
||||
('super_admin', '超级管理员', 1, '最高权限管理员,可以管理角色和系统配置');
|
||||
|
||||
-- ============================================================
|
||||
-- auth_user_roles: 用户角色关联表
|
||||
@@ -265,8 +269,8 @@ CREATE TABLE auth_user_roles (
|
||||
|
||||
#### 权限扩展规划(后期迭代)
|
||||
|
||||
> 当前 MVP 阶段使用粗粒度 3 角色(user / admin / super_admin)即可满足需求。
|
||||
> 后期管理员增多、需要区分职责时,引入细粒度权限点机制,扩展如下两张表:
|
||||
> 当前已实现:3 角色 + level 等级层级管控(super_admin=1, admin=10, user=100),所有管理操作受层级约束。
|
||||
> 后期管理员增多、需要区分职责时,引入细粒度权限点机制,扩展如下两张表(level 字段天然支持排序和层级融合):
|
||||
|
||||
```sql
|
||||
-- 预留:权限点表(后期扩展)
|
||||
@@ -714,8 +718,9 @@ POST /api/v1/admin/auth/login
|
||||
GET /api/v1/admin/users
|
||||
GET /api/v1/admin/users/:id
|
||||
PUT /api/v1/admin/users/:id/status
|
||||
PUT /api/v1/admin/users/:id/role
|
||||
PUT /api/v1/admin/users/:id/roles
|
||||
POST /api/v1/admin/users
|
||||
GET /api/v1/admin/roles
|
||||
GET /api/v1/admin/users/:id/meetings
|
||||
|
||||
# 会议管理
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
> **状态:✅ Phase 1 全部完成**(2026-03-02)
|
||||
> 11 个 Task 全部通过端到端验证和代码审查。
|
||||
> 分支:`feature/phase1-foundation-and-auth`
|
||||
> **补充:角色等级体系与权限管控已实施**(2026-03-02)— `auth_roles.level` 字段 + 层级权限 + 多选角色分配
|
||||
|
||||
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user