feat: RBAC权限管理

This commit is contained in:
2025-03-10 23:55:10 +08:00
parent cbd06dcf54
commit e7bd916cae
13 changed files with 142 additions and 110 deletions

View File

@@ -77,45 +77,16 @@ model File {
// 权限表
model SysPermission {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
type Int /// 权限类型
sysRolePermission SysRolePermission[]
sysMenuPermission SysMenuPermission[]
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
name String? @unique // 权限字符
sysRolePermission SysRolePermission[]
sysResourcePermission SysResourcePermission[]
@@map("sys_permission")
}
// 系统菜单表
model SysMenu {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
name String
url String
parentId String? @map("parent_id")
sort Int @default(0)
sysMenuPermission SysMenuPermission[]
@@map("sys_menu")
}
// 菜单权限关联表
model SysMenuPermission {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
menuId String @map("menu_id")
permissionId String @map("permission_id")
menu SysMenu @relation(fields: [menuId], references: [id], onDelete: Cascade)
permission SysPermission @relation(fields: [permissionId], references: [id], onDelete: Cascade)
@@index([menuId])
@@index([permissionId])
@@map("sys_menu_permission")
}
// 角色权限关联表
model SysRolePermission {
id String @id @default(cuid()) /// 主键id
@@ -131,6 +102,38 @@ model SysRolePermission {
@@map("sys_role_permission")
}
// 系统资源表
model SysResource {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
name String
path String? /// 菜单或api路径
parentId String? @map("parent_id")
sort Int @default(0)
type Int /// 资源类型 0:菜单 1:api
sysResourcePermission SysResourcePermission[]
@@unique([name, type])
@@unique([path])
@@map("sys_resource")
}
// 系统资源权限表
model SysResourcePermission {
id String @id @default(cuid()) /// 主键id
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
resourceId String @map("resource_id")
resource SysResource @relation(fields: [resourceId], references: [id], onDelete: Cascade)
permissionId String @map("permission_id")
permission SysPermission @relation(fields: [permissionId], references: [id], onDelete: Cascade)
@@index([resourceId])
@@index([permissionId])
@@map("sys_resource_permission")
}
// 系统配置
model SysConfig {
id String @id @default(cuid()) /// 主键id