feat: RBAC权限管理
This commit is contained in:
@@ -3,6 +3,7 @@ const prisma = new PrismaClient();
|
||||
|
||||
enum PermissionType {
|
||||
Menu,
|
||||
API,
|
||||
}
|
||||
|
||||
async function main() {
|
||||
@@ -18,23 +19,25 @@ async function main() {
|
||||
},
|
||||
});
|
||||
const menus = [
|
||||
{ name: '用户管理', url: 'user' },
|
||||
{ name: '角色管理', url: 'role' },
|
||||
{ name: '菜单管理', url: 'menu' },
|
||||
{ name: '系统配置', url: 'config' },
|
||||
{ name: '用户管理', path: 'user', type: PermissionType.Menu },
|
||||
{ name: '角色管理', path: 'role', type: PermissionType.Menu },
|
||||
{ name: '菜单管理', path: 'menu', type: PermissionType.Menu },
|
||||
{ name: '系统配置', path: 'config', type: PermissionType.Menu },
|
||||
];
|
||||
|
||||
for (const menu of menus) {
|
||||
// 创建菜单
|
||||
await prisma.$transaction(async (_prisma) => {
|
||||
const { id: menuId } = await _prisma.sysMenu.create({ data: menu });
|
||||
const { id: resourceId } = await _prisma.sysResource.create({
|
||||
data: menu,
|
||||
});
|
||||
// 创建菜单权限
|
||||
const { id: permissionId } = await _prisma.sysPermission.create({
|
||||
data: { type: PermissionType.Menu },
|
||||
data: {},
|
||||
});
|
||||
// 关联权限和菜单
|
||||
await _prisma.sysMenuPermission.create({
|
||||
data: { menuId, permissionId },
|
||||
await _prisma.sysResourcePermission.create({
|
||||
data: { resourceId, permissionId },
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user