70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
||
|
||
const prisma = new PrismaClient();
|
||
|
||
const BUDGET_ROUTE = '/dashboard/budget';
|
||
|
||
async function main() {
|
||
console.log('🔧 Ajout de la permission Budget...');
|
||
|
||
// Créer la permission si elle n'existe pas
|
||
let permission = await prisma.permission.findUnique({
|
||
where: { name: BUDGET_ROUTE },
|
||
});
|
||
|
||
if (!permission) {
|
||
permission = await prisma.permission.create({
|
||
data: {
|
||
name: BUDGET_ROUTE,
|
||
description: 'Budget des prescripteurs',
|
||
},
|
||
});
|
||
console.log('✅ Permission Budget créée');
|
||
} else {
|
||
console.log('ℹ️ Permission Budget existe déjà');
|
||
}
|
||
|
||
// Ajouter la permission à tous les rôles
|
||
const roles = await prisma.role.findMany();
|
||
let added = 0;
|
||
|
||
for (const role of roles) {
|
||
const existing = await prisma.rolePermission.findUnique({
|
||
where: {
|
||
roleId_permissionId: {
|
||
roleId: role.id,
|
||
permissionId: permission.id,
|
||
},
|
||
},
|
||
});
|
||
|
||
if (!existing) {
|
||
await prisma.rolePermission.create({
|
||
data: {
|
||
roleId: role.id,
|
||
permissionId: permission.id,
|
||
},
|
||
});
|
||
console.log(` → Ajouté au rôle "${role.name}"`);
|
||
added++;
|
||
}
|
||
}
|
||
|
||
if (added === 0 && roles.length > 0) {
|
||
console.log('ℹ️ Tous les rôles ont déjà la permission Budget');
|
||
} else if (roles.length === 0) {
|
||
console.log('ℹ️ Aucun rôle existant (utilisateurs sans rôle ont accès à tout)');
|
||
}
|
||
|
||
console.log('\n✅ Terminé. Rechargez la page pour voir Budget dans la sidebar.');
|
||
}
|
||
|
||
main()
|
||
.catch((e) => {
|
||
console.error('❌ Erreur:', e);
|
||
process.exit(1);
|
||
})
|
||
.finally(async () => {
|
||
await prisma.$disconnect();
|
||
});
|