- 数据库: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
33 lines
1019 B
Go
33 lines
1019 B
Go
// Package admin 提供管理后台功能模块
|
||
package admin
|
||
|
||
import (
|
||
"github.com/echochat/backend/app/admin/controller"
|
||
"github.com/echochat/backend/app/constants"
|
||
"github.com/echochat/backend/pkg/middleware"
|
||
"github.com/gin-gonic/gin"
|
||
)
|
||
|
||
// RegisterRoutes 注册 admin 模块的所有路由
|
||
// 所有管理端 API 需要 JWT + admin 角色双重中间件
|
||
func RegisterRoutes(
|
||
r *gin.Engine,
|
||
ctrl *controller.UserManageController,
|
||
jwtAuth gin.HandlerFunc,
|
||
) {
|
||
// 管理端路由组:JWT 认证 + admin/super_admin 角色检查
|
||
adminGroup := r.Group("/api/v1/admin")
|
||
adminGroup.Use(jwtAuth, middleware.RequireRole(constants.RoleAdmin, constants.RoleSuperAdmin))
|
||
{
|
||
// 用户管理
|
||
adminGroup.GET("/users", ctrl.GetUserList)
|
||
adminGroup.GET("/users/:id", ctrl.GetUserDetail)
|
||
adminGroup.PUT("/users/:id/status", ctrl.UpdateUserStatus)
|
||
adminGroup.PUT("/users/:id/roles", ctrl.SetRoles)
|
||
adminGroup.POST("/users", ctrl.CreateUser)
|
||
|
||
// 角色管理
|
||
adminGroup.GET("/roles", ctrl.GetAllRoles)
|
||
}
|
||
}
|