This commit is contained in:
2025-11-21 15:48:38 +03:30
parent f07837cfdb
commit 89593d0f2e
5 changed files with 40 additions and 12 deletions
+19 -6
View File
@@ -13,9 +13,16 @@ import { Permission, PermissionTitles } from '../common/enums/permission.enum';
export class DatabaseSeeder extends Seeder {
async run(em: EntityManager) {
// 1. Create Permissions (English)
const specialPermissions = [
Permission.CREATE_RESTAURANT,
Permission.DELETE_RESTAURANT,
Permission.UPDATE_RESTAURANT,
];
const permissions = Object.values(Permission).map(name => ({
name,
title: PermissionTitles[name],
group: specialPermissions.includes(name) ? 'special' : 'general',
}));
const createdPermissions: PermissionEntity[] = [];
@@ -24,6 +31,12 @@ export class DatabaseSeeder extends Seeder {
if (!permission) {
permission = em.create(PermissionEntity, permData);
em.persist(permission);
} else {
// Update existing permission's group if it changed
if (permission.group !== permData.group) {
permission.group = permData.group;
em.persist(permission);
}
}
createdPermissions.push(permission);
}
@@ -44,9 +57,9 @@ export class DatabaseSeeder extends Seeder {
// Add financial permissions to accountant
const financialPerms = createdPermissions.filter(
p =>
p.name === Permission.VIEW_REPORTS ||
p.name === Permission.MANAGE_FINANCES ||
p.name === Permission.MANAGE_ORDERS,
(p.name as Permission) === Permission.VIEW_REPORTS ||
(p.name as Permission) === Permission.MANAGE_FINANCES ||
(p.name as Permission) === Permission.MANAGE_ORDERS,
);
financialPerms.forEach(p => role.permissions.add(p));
em.persist(role);
@@ -58,9 +71,9 @@ export class DatabaseSeeder extends Seeder {
// Add restaurant management permissions to superAdmin
const restaurantPerms = createdPermissions.filter(
p =>
p.name === Permission.CREATE_RESTAURANT ||
p.name === Permission.DELETE_RESTAURANT ||
p.name === Permission.UPDATE_RESTAURANT,
(p.name as Permission) === Permission.CREATE_RESTAURANT ||
(p.name as Permission) === Permission.DELETE_RESTAURANT ||
(p.name as Permission) === Permission.UPDATE_RESTAURANT,
);
restaurantPerms.forEach(p => role.permissions.add(p));
em.persist(role);