35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
function getDefaultPermissions(role: string): string[] {
|
|
const common = ['dashboard', 'opportunities', 'clients', 'activities', 'products'];
|
|
switch (role) {
|
|
case 'ADMIN':
|
|
case 'GENERAL_MANAGER':
|
|
return [...common, 'tracking', 'targets', 'incentives', 'reports', 'funnel-analysis', 'users', 'settings', 'expenses', 'call-logs'];
|
|
case 'MANAGER':
|
|
return [...common, 'reports', 'incentives', 'targets', 'call-logs'];
|
|
default:
|
|
return common;
|
|
}
|
|
}
|
|
|
|
async function main() {
|
|
const users = await prisma.user.findMany();
|
|
for (const user of users) {
|
|
if (!user.permissions) {
|
|
const permissions = getDefaultPermissions(user.role);
|
|
await prisma.user.update({
|
|
where: { id: user.id },
|
|
data: { permissions: JSON.stringify(permissions) }
|
|
});
|
|
console.log(`Updated permissions for ${user.email} (${user.role})`);
|
|
}
|
|
}
|
|
}
|
|
|
|
main()
|
|
.catch(console.error)
|
|
.finally(() => prisma.$disconnect());
|