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