library-picturebook-activity/backend/scripts/fix-duplicate-activity-menu.ts
2026-01-09 18:14:35 +08:00

47 lines
1.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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());