update roles and permissions

This commit is contained in:
2025-12-23 12:07:33 +03:30
parent 4e1300c6b9
commit 9916426814
7 changed files with 28 additions and 55 deletions
+1 -6
View File
@@ -1,15 +1,10 @@
import { Permission, PermissionTitles } from '../../common/enums/permission.enum';
export const specialPermissions = [
Permission.CREATE_RESTAURANT,
Permission.DELETE_RESTAURANT,
Permission.UPDATE_RESTAURANT,
];
export const getPermissionsData = () => {
return Object.values(Permission).map(name => ({
name,
title: PermissionTitles[name],
group: specialPermissions.includes(name) ? 'special' : 'general',
}));
};
+2 -10
View File
@@ -10,20 +10,12 @@ export const rolesData: RoleConfig[] = [
{
name: 'restaurant',
isSystem: false,
permissionFilter: () => true, // Will be filtered by group in seeder
permissionFilter: () => true, // All permissions for restaurant role
},
{
name: 'accountant',
isSystem: false,
permissionFilter: (name: Permission) =>
name === Permission.VIEW_REPORTS || name === Permission.MANAGE_FINANCES || name === Permission.MANAGE_ORDERS,
},
{
name: 'superAdmin',
isSystem: true,
permissionFilter: (name: Permission) =>
name === Permission.CREATE_RESTAURANT ||
name === Permission.DELETE_RESTAURANT ||
name === Permission.UPDATE_RESTAURANT,
name === Permission.VIEW_REPORTS || name === Permission.MANAGE_PAYMENTS || name === Permission.MANAGE_ORDERS,
},
];
+3 -3
View File
@@ -13,9 +13,9 @@ export class PermissionsSeeder {
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;
// Update existing permission's title if it changed
if (permission.title !== permData.title) {
permission.title = permData.title;
em.persist(permission);
}
}
+3 -9
View File
@@ -19,15 +19,9 @@ export class RolesSeeder {
// Add permissions based on role configuration
// TypeScript knows role is not null here because we just created it
const newRole = role;
if (roleConfig.name === 'restaurant') {
// Add all general permissions to restaurant role
const generalPermissions = permissions.filter(p => p.group === 'general');
generalPermissions.forEach(p => newRole.permissions.add(p));
} else {
// For other roles, use the permission filter
const filteredPermissions = permissions.filter(p => roleConfig.permissionFilter(p.name as Permission));
filteredPermissions.forEach(p => newRole.permissions.add(p));
}
// Use the permission filter for all roles
const filteredPermissions = permissions.filter(p => roleConfig.permissionFilter(p.name as Permission));
filteredPermissions.forEach(p => newRole.permissions.add(p));
em.persist(newRole);
}