library-picturebook-activity/backend/scripts/fix-duplicate-activity-menu.ts

47 lines
1.3 KiB
TypeScript
Raw Normal View History

2026-01-09 18:14:35 +08:00
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
console.log('🔧 修复重复的赛事活动菜单...\n');
// 查找原来的赛事活动菜单(在赛事管理下的,路径是 /contests/activities
const oldActivityMenu = await prisma.menu.findFirst({
where: { path: '/contests/activities' }
});
if (oldActivityMenu) {
// 把它改回 contest:read 权限,这样只有管理员能看到
await prisma.menu.update({
where: { id: oldActivityMenu.id },
data: { permission: 'contest:read' }
});
console.log('✅ 原赛事活动菜单权限更新为 contest:read');
}
// 验证最终结果
console.log('\n📋 最终菜单配置:');
const menus = await prisma.menu.findMany({
where: {
OR: [
{ path: '/contests/activities' },
{ path: '/student-activities' },
]
},
select: { name: true, path: true, permission: true, parentId: true }
});
menus.forEach(m => {
const type = m.parentId ? '(子菜单)' : '(一级菜单)';
console.log(` - ${m.name} ${type}`);
console.log(` 路径: ${m.path}`);
console.log(` 权限: ${m.permission}`);
});
console.log('\n✅ 修复完成!');
}
main()
.catch(console.error)
.finally(() => prisma.$disconnect());