- 数据库: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
1.9 KiB
Go
33 lines
1.9 KiB
Go
package model
|
||
|
||
import "time"
|
||
|
||
// Role 角色表模型,对应 auth_roles 表
|
||
// 系统预置三种角色:user(普通用户)、admin(管理员)、super_admin(超级管理员)
|
||
type Role struct {
|
||
ID int `json:"id" gorm:"primaryKey;autoIncrement"` // 角色唯一标识,自增主键
|
||
Code string `json:"code" gorm:"uniqueIndex;size:50;not null"` // 角色代码,全局唯一,如 user/admin/super_admin(对应 constants.RoleCode*)
|
||
Name string `json:"name" gorm:"size:50;not null"` // 角色中文显示名称,如「普通用户」「管理员」
|
||
Level int `json:"level" gorm:"not null;default:100"` // 角色等级,值越小权限越高:1=超管, 10=管理员, 100=普通用户
|
||
Description string `json:"description" gorm:"size:200;default:''"` // 角色描述说明,用于后台管理界面展示
|
||
CreatedAt time.Time `json:"created_at" gorm:"not null;autoCreateTime;type:timestamp(0)"` // 创建时间,由 GORM 自动填充,精确到秒
|
||
}
|
||
|
||
// TableName 指定数据库表名
|
||
func (Role) TableName() string {
|
||
return "auth_roles"
|
||
}
|
||
|
||
// UserRole 用户角色关联表模型,对应 auth_user_roles 表
|
||
// 采用联合主键(user_id + role_id),一个用户可拥有多个角色
|
||
type UserRole struct {
|
||
UserID int64 `json:"user_id" gorm:"primaryKey"` // 关联的用户 ID,外键指向 auth_users.id
|
||
RoleID int `json:"role_id" gorm:"primaryKey"` // 关联的角色 ID,外键指向 auth_roles.id
|
||
CreatedAt time.Time `json:"created_at" gorm:"not null;autoCreateTime;type:timestamp(0)"` // 角色分配时间,由 GORM 自动填充,精确到秒
|
||
}
|
||
|
||
// TableName 指定数据库表名
|
||
func (UserRole) TableName() string {
|
||
return "auth_user_roles"
|
||
}
|