opencrm/backend/prisma/add-settings-permissions.ts

65 lines
1.4 KiB
TypeScript

import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
// Create settings permissions
const settingsPermissions = [
{ resource: 'settings', action: 'read' },
{ resource: 'settings', action: 'update' },
];
for (const perm of settingsPermissions) {
await prisma.permission.upsert({
where: {
resource_action: {
resource: perm.resource,
action: perm.action,
},
},
update: {},
create: perm,
});
}
console.log('Settings permissions created');
// Add to Admin role
const adminRole = await prisma.role.findUnique({
where: { name: 'Admin' },
});
if (adminRole) {
const newPermissions = await prisma.permission.findMany({
where: { resource: 'settings' },
});
for (const perm of newPermissions) {
await prisma.rolePermission.upsert({
where: {
roleId_permissionId: {
roleId: adminRole.id,
permissionId: perm.id,
},
},
update: {},
create: {
roleId: adminRole.id,
permissionId: perm.id,
},
});
}
console.log('Settings permissions added to Admin role');
}
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});