role
This commit is contained in:
@@ -24,6 +24,9 @@ export enum Permission {
|
||||
CREATE_RESTAURANT = 'create_restaurant',
|
||||
DELETE_RESTAURANT = 'delete_restaurant',
|
||||
UPDATE_RESTAURANT = 'update_restaurant',
|
||||
|
||||
// Role Management
|
||||
CREATE_ROLE = 'create_role',
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,4 +46,5 @@ export const PermissionTitles: Record<Permission, string> = {
|
||||
[Permission.CREATE_RESTAURANT]: 'ایجاد رستوران',
|
||||
[Permission.DELETE_RESTAURANT]: 'حذف رستوران',
|
||||
[Permission.UPDATE_RESTAURANT]: 'ویرایش رستوران',
|
||||
[Permission.CREATE_ROLE]: 'ایجاد نقش',
|
||||
};
|
||||
|
||||
@@ -36,7 +36,7 @@ export class RolesController {
|
||||
return adminPermissionNames;
|
||||
}
|
||||
|
||||
@Permissions('create-role')
|
||||
@Permissions('create_role')
|
||||
@Post()
|
||||
@ApiOperation({ summary: 'Create a new role' })
|
||||
@ApiBody({ type: CreateRoleDto })
|
||||
|
||||
@@ -45,8 +45,9 @@ export class DatabaseSeeder extends Seeder {
|
||||
let restaurantRole = await em.findOne(Role, { name: 'restaurant' });
|
||||
if (!restaurantRole) {
|
||||
const role = em.create(Role, { name: 'restaurant', title: 'رستوران' });
|
||||
// Add all permissions to restaurant role (including update_restaurant)
|
||||
createdPermissions.forEach(p => role.permissions.add(p));
|
||||
// Add all general permissions to restaurant role (excluding special permissions)
|
||||
const generalPermissions = createdPermissions.filter(p => p.group === 'general');
|
||||
generalPermissions.forEach(p => role.permissions.add(p));
|
||||
em.persist(role);
|
||||
restaurantRole = role;
|
||||
}
|
||||
@@ -85,7 +86,7 @@ export class DatabaseSeeder extends Seeder {
|
||||
if (!restaurantRole) {
|
||||
restaurantRole = await em.findOne(Role, { name: 'restaurant' });
|
||||
}
|
||||
const accountant = await em.findOne(Role, { name: 'accountant' });
|
||||
await em.findOne(Role, { name: 'accountant' });
|
||||
const superAdmin = await em.findOne(Role, { name: 'superAdmin' });
|
||||
|
||||
// 3. Create Restaurants (Farsi)
|
||||
@@ -449,7 +450,7 @@ export class DatabaseSeeder extends Seeder {
|
||||
}
|
||||
|
||||
const adminHamid = await em.findOne(Admin, { phone: '09185290775' });
|
||||
if (!adminHamid && accountant && boote) {
|
||||
if (!adminHamid && restaurantRole && boote) {
|
||||
const admin = em.create(Admin, {
|
||||
phone: '09185290775',
|
||||
firstName: 'حمید',
|
||||
@@ -460,7 +461,7 @@ export class DatabaseSeeder extends Seeder {
|
||||
// Create AdminRole linking admin to role and restaurant
|
||||
const adminRole = em.create(AdminRole, {
|
||||
admin,
|
||||
role: accountant,
|
||||
role: restaurantRole,
|
||||
restaurant: boote,
|
||||
});
|
||||
em.persist(adminRole);
|
||||
|
||||
Reference in New Issue
Block a user