rez_core 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/module/enterprise/entity/enterprise.entity.d.ts +1 -1
  2. package/dist/module/enterprise/entity/enterprise.entity.js +2 -2
  3. package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
  4. package/dist/module/enterprise/entity/organization.entity.d.ts +1 -1
  5. package/dist/module/enterprise/entity/organization.entity.js +2 -2
  6. package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
  7. package/dist/module/filter/entity/saved-filter-master.entity.d.ts +0 -1
  8. package/dist/module/filter/entity/saved-filter-master.entity.js +0 -4
  9. package/dist/module/filter/entity/saved-filter-master.entity.js.map +1 -1
  10. package/dist/module/master/service/master.service.js +31 -15
  11. package/dist/module/master/service/master.service.js.map +1 -1
  12. package/dist/module/meta/controller/entity.controller.d.ts +1 -1
  13. package/dist/module/meta/controller/entity.controller.js +14 -11
  14. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  15. package/dist/module/meta/entity/entity-table-column.entity.d.ts +0 -1
  16. package/dist/module/meta/entity/entity-table-column.entity.js +0 -4
  17. package/dist/module/meta/entity/entity-table-column.entity.js.map +1 -1
  18. package/dist/module/meta/entity/entity-table.entity.d.ts +0 -1
  19. package/dist/module/meta/entity/entity-table.entity.js +0 -4
  20. package/dist/module/meta/entity/entity-table.entity.js.map +1 -1
  21. package/dist/module/meta/service/entity-list.service.d.ts +2 -2
  22. package/dist/module/meta/service/entity-list.service.js +18 -7
  23. package/dist/module/meta/service/entity-list.service.js.map +1 -1
  24. package/dist/module/meta/service/entity-service-impl.service.d.ts +3 -3
  25. package/dist/module/meta/service/entity-service-impl.service.js +4 -4
  26. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  27. package/dist/module/meta/service/entity.service.d.ts +2 -2
  28. package/dist/module/module/controller/menu.controller.js +2 -1
  29. package/dist/module/module/controller/menu.controller.js.map +1 -1
  30. package/dist/module/module/controller/module-access.controller.d.ts +5 -5
  31. package/dist/module/module/controller/module-access.controller.js +30 -17
  32. package/dist/module/module/controller/module-access.controller.js.map +1 -1
  33. package/dist/module/module/entity/menu.entity.d.ts +1 -0
  34. package/dist/module/module/entity/menu.entity.js +4 -0
  35. package/dist/module/module/entity/menu.entity.js.map +1 -1
  36. package/dist/module/module/entity/module-access.entity.d.ts +1 -1
  37. package/dist/module/module/entity/module-access.entity.js +1 -1
  38. package/dist/module/module/entity/module-access.entity.js.map +1 -1
  39. package/dist/module/module/entity/module.entity.d.ts +1 -0
  40. package/dist/module/module/entity/module.entity.js +4 -0
  41. package/dist/module/module/entity/module.entity.js.map +1 -1
  42. package/dist/module/module/repository/menu.repository.d.ts +3 -3
  43. package/dist/module/module/repository/menu.repository.js +12 -8
  44. package/dist/module/module/repository/menu.repository.js.map +1 -1
  45. package/dist/module/module/repository/module-access.repository.d.ts +10 -6
  46. package/dist/module/module/repository/module-access.repository.js +45 -29
  47. package/dist/module/module/repository/module-access.repository.js.map +1 -1
  48. package/dist/module/module/service/menu.service.d.ts +1 -1
  49. package/dist/module/module/service/menu.service.js +4 -4
  50. package/dist/module/module/service/menu.service.js.map +1 -1
  51. package/dist/module/module/service/module-access.service.d.ts +9 -5
  52. package/dist/module/module/service/module-access.service.js +12 -10
  53. package/dist/module/module/service/module-access.service.js.map +1 -1
  54. package/dist/module/user/dto/create-user.dto.d.ts +1 -0
  55. package/dist/module/user/dto/create-user.dto.js.map +1 -1
  56. package/dist/module/user/entity/role.entity.d.ts +0 -1
  57. package/dist/module/user/entity/role.entity.js +0 -4
  58. package/dist/module/user/entity/role.entity.js.map +1 -1
  59. package/dist/module/user/entity/user-role-mapping.entity.d.ts +1 -0
  60. package/dist/module/user/entity/user-role-mapping.entity.js +4 -0
  61. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  62. package/dist/module/user/service/role.service.d.ts +1 -1
  63. package/dist/module/user/service/role.service.js +6 -3
  64. package/dist/module/user/service/role.service.js.map +1 -1
  65. package/dist/module/user/service/user.service.d.ts +1 -1
  66. package/dist/module/user/service/user.service.js +4 -1
  67. package/dist/module/user/service/user.service.js.map +1 -1
  68. package/dist/tsconfig.build.tsbuildinfo +1 -1
  69. package/package.json +1 -1
  70. package/src/module/enterprise/entity/enterprise.entity.ts +2 -2
  71. package/src/module/enterprise/entity/organization.entity.ts +2 -2
  72. package/src/module/filter/entity/saved-filter-master.entity.ts +0 -3
  73. package/src/module/master/service/master.service.ts +31 -15
  74. package/src/module/meta/controller/entity.controller.ts +27 -12
  75. package/src/module/meta/entity/entity-table-column.entity.ts +1 -2
  76. package/src/module/meta/entity/entity-table.entity.ts +0 -2
  77. package/src/module/meta/service/entity-list.service.ts +29 -7
  78. package/src/module/meta/service/entity-service-impl.service.ts +29 -17
  79. package/src/module/meta/service/entity.service.ts +2 -1
  80. package/src/module/module/controller/menu.controller.ts +2 -1
  81. package/src/module/module/controller/module-access.controller.ts +49 -22
  82. package/src/module/module/entity/menu.entity.ts +3 -0
  83. package/src/module/module/entity/module-access.entity.ts +1 -1
  84. package/src/module/module/entity/module.entity.ts +3 -0
  85. package/src/module/module/repository/menu.repository.ts +48 -43
  86. package/src/module/module/repository/module-access.repository.ts +69 -50
  87. package/src/module/module/service/menu.service.ts +4 -4
  88. package/src/module/module/service/module-access.service.ts +15 -13
  89. package/src/module/user/dto/create-user.dto.ts +1 -0
  90. package/src/module/user/entity/role.entity.ts +0 -3
  91. package/src/module/user/entity/user-role-mapping.entity.ts +3 -0
  92. package/src/module/user/service/role.service.ts +7 -3
  93. package/src/module/user/service/user.service.ts +4 -0
@@ -14,59 +14,64 @@ export class MenuRepository extends Repository<MenuData> {
14
14
  /**
15
15
  * Get all role IDs assigned to a user.
16
16
  */
17
- async getUserRoles(userId: number): Promise<number[]> {
17
+ async getUserRoles(userId: number, appcode: string): Promise<number[]> {
18
18
  const roles = await this.dataSource
19
19
  .getRepository(UserRoleMapping)
20
- .createQueryBuilder('userRoleMapping')
21
- .select('userRoleMapping.role_id')
22
- .where('userRoleMapping.user_id = :userId', { userId })
23
- .getMany();
24
-
25
- return roles.map((role) => role.role_id);
20
+ .createQueryBuilder('urm')
21
+ .innerJoin('cr_role', 'role', 'role.id = urm.role_id') // manual join
22
+ .select('urm.role_id')
23
+ .where('urm.user_id = :userId', { userId })
24
+ .andWhere('role.appcode = :appcode', { appcode })
25
+ .getRawMany();
26
+
27
+ return roles. map((r) => r.urm_role_id);
26
28
  }
29
+
27
30
 
28
31
  /**
29
32
  * Get module codes that the user has access to based on their role IDs.
30
- */
31
- async getAccessibleModules(roleIds: number[]): Promise<string[]> {
32
- // Get role codes from role IDs
33
- const roleCodes = await this.dataSource
34
- .getRepository(Role)
35
- .createQueryBuilder('role')
36
- .select('role.code')
37
- .where('role.id IN (:...roleIds)', { roleIds })
38
- .getMany();
33
+ */async getAccessibleModules(roleIds: number[], appCode: string): Promise<string[]> {
34
+ // Get role codes from role IDs
35
+ const roleCodes = await this.dataSource
36
+ .getRepository(Role)
37
+ .createQueryBuilder('role')
38
+ .select('role.code')
39
+ .where('role.id IN (:...roleIds)', { roleIds })
40
+ .getMany();
39
41
 
40
- const codes = roleCodes.map((role) => role.code);
42
+ const codes = roleCodes.map((role) => role.code);
41
43
 
42
- if (codes.length === 0) {
43
- return [];
44
- }
44
+ if (codes.length === 0) {
45
+ return [];
46
+ }
45
47
 
46
- // Get accessible modules using role codes
47
- const modules = await this.dataSource
48
- .getRepository(ModuleAccess)
49
- .createQueryBuilder('moduleAccess')
50
- .select('moduleAccess.module_code')
51
- .where('moduleAccess.role_code IN (:...codes)', { codes })
52
- .andWhere('moduleAccess.access_flag > 0')
53
- .getMany();
48
+ // Get accessible modules using role codes and appCode
49
+ const modules = await this.dataSource
50
+ .getRepository(ModuleAccess)
51
+ .createQueryBuilder('moduleAccess')
52
+ .select('moduleAccess.module_code')
53
+ .where('moduleAccess.role_code IN (:...codes)', { codes })
54
+ .andWhere('moduleAccess.access_flag > 0')
55
+ .andWhere('LOWER(moduleAccess.appcode) = LOWER(:appCode)', { appCode }) // case-insensitive
56
+ .getMany();
54
57
 
55
- return modules.map((module) => module.module_code);
56
- }
58
+ return modules.map((module) => module.module_code);
59
+ }
57
60
 
58
- async getMenuItems(moduleCodes: string[]): Promise<MenuData[]> {
59
- const menuItems = await this.createQueryBuilder('menu')
60
- .leftJoin('cr_module', 'module', 'menu.module_code = module.module_code')
61
- .where('menu.module_code IN (:...moduleCodes)', { moduleCodes })
62
- .select([
63
- 'menu.*',
64
- 'module.component_name AS component',
65
- 'module.title AS title',
66
- 'module.entity_type AS entity_type',
67
- ])
68
- .getRawMany();
61
+ async getMenuItems(moduleCodes: string[], appcode: string): Promise<MenuData[]> {
62
+ const menuItems = await this.createQueryBuilder('menu')
63
+ .leftJoin('cr_module', 'module', 'menu.module_code = module.module_code')
64
+ .where('menu.module_code IN (:...moduleCodes)', { moduleCodes })
65
+ .andWhere('LOWER(module.appcode) = LOWER(:appcode)', { appcode }) // appcode filter
66
+ .select([
67
+ 'menu.*',
68
+ 'module.component_name AS component',
69
+ 'module.title AS title',
70
+ 'module.entity_type AS entity_type',
71
+ ])
72
+ .getRawMany();
73
+
74
+ return menuItems;
75
+ }
69
76
 
70
- return menuItems;
71
- }
72
77
  }
@@ -21,36 +21,42 @@ export class ModuleAccessRepository {
21
21
  private readonly moduleActionRepo: Repository<ModuleAction>,
22
22
  ) {}
23
23
 
24
- async getRoles() {
25
- const roles = await this.roleRepo.find();
26
- return roles.map(role => ({
24
+ async getRoles({ appcode }: { appcode: string }) {
25
+ const roles = await this.roleRepo.find({
26
+ where: { appcode: appcode },
27
+ });
28
+ return roles.map((role) => ({
27
29
  label: role.name,
28
30
  value: role.id,
29
31
  }));
30
32
  }
31
33
 
32
- async getModules() {
33
- const modules = await this.moduleRepo.find({ where: { module_level: 'MAINMOD' } });
34
- return modules.map(mod => ({
34
+ async getModules({ appcode }: { appcode: string }) {
35
+ const modules = await this.moduleRepo.find({
36
+ where: { module_level: 'MAINMOD', appcode: appcode },
37
+ });
38
+ return modules.map((mod) => ({
35
39
  label: mod.name,
36
40
  value: mod.id,
37
41
  }));
38
42
  }
39
43
 
40
- async getAccessListing(roleIds: number[]) {
41
- const roles = await this.roleRepo.find({ where: { id: In(roleIds) } });
42
- const roleCodes = roles.map(role => role.code);
44
+ async getAccessListing(roleIds: number[], appcode: string) {
45
+ const roles = await this.roleRepo.find({
46
+ where: { id: In(roleIds), appcode: appcode },
47
+ });
48
+ const roleCodes = roles.map((role) => role.code);
43
49
 
44
50
  const moduleAccesses = await this.moduleAccessRepo.find({
45
- where: { role_code: In(roleCodes) },
51
+ where: { role_code: In(roleCodes), appcode: appcode },
46
52
  });
47
53
 
48
- return roles.map(role => ({
54
+ return roles.map((role) => ({
49
55
  role_code: role.code,
50
56
  name: role.name,
51
57
  permission: moduleAccesses
52
- .filter(access => access.role_code === role.code)
53
- .map(access => ({
58
+ .filter((access) => access.role_code === role.code)
59
+ .map((access) => ({
54
60
  action: access.action_type,
55
61
  access: access.access_flag,
56
62
  code: access.module_code,
@@ -58,20 +64,31 @@ export class ModuleAccessRepository {
58
64
  }));
59
65
  }
60
66
 
61
- async getMenuListing(mainModIds: string[]) {
62
- const mainModules = mainModIds.length === 1 && mainModIds[0] === '-1'
63
- ? await this.moduleRepo.find({ where: { module_level: 'MAINMOD' } })
64
- : await this.moduleRepo.find({ where: { id: In(mainModIds), module_level: 'MAINMOD' } });
67
+ async getMenuListing(mainModIds: string[], appcode: string) {
68
+ const mainModules =
69
+ mainModIds.length === 1 && mainModIds[0] === '-1'
70
+ ? await this.moduleRepo.find({
71
+ where: { module_level: 'MAINMOD', appcode: appcode },
72
+ })
73
+ : await this.moduleRepo.find({
74
+ where: {
75
+ id: In(mainModIds),
76
+ module_level: 'MAINMOD',
77
+ appcode: appcode,
78
+ },
79
+ });
65
80
 
66
81
  if (!mainModules.length) return [];
67
82
 
68
- const wbsCodes = mainModules.map(mod => mod.wbs_code);
83
+ const wbsCodes = mainModules.map((mod) => mod.wbs_code);
69
84
 
70
85
  const modules = await this.moduleRepo
71
86
  .createQueryBuilder('module')
72
87
  .where(
73
- wbsCodes.map(code => `module.wbs_code LIKE :code${code}`).join(' OR '),
74
- Object.fromEntries(wbsCodes.map(code => [`code${code}`, `${code}%`])),
88
+ wbsCodes
89
+ .map((code) => `module.wbs_code LIKE :code${code}`)
90
+ .join(' OR '),
91
+ Object.fromEntries(wbsCodes.map((code) => [`code${code}`, `${code}%`])),
75
92
  )
76
93
  .getMany();
77
94
 
@@ -79,28 +96,29 @@ export class ModuleAccessRepository {
79
96
 
80
97
  const buildHierarchy = (parentWbs: string): any[] =>
81
98
  modules
82
- .filter(mod =>
83
- mod.wbs_code.startsWith(`${parentWbs}.`) &&
84
- mod.wbs_code.split('.').length === parentWbs.split('.').length + 1,
99
+ .filter(
100
+ (mod) =>
101
+ mod.wbs_code.startsWith(`${parentWbs}.`) &&
102
+ mod.wbs_code.split('.').length === parentWbs.split('.').length + 1,
85
103
  )
86
- .map(mod => ({
104
+ .map((mod) => ({
87
105
  name: mod.name,
88
106
  code: mod.module_code,
89
107
  permission: moduleActions
90
- .filter(action => action.module_code === mod.module_code)
91
- .map(action => ({
108
+ .filter((action) => action.module_code === mod.module_code)
109
+ .map((action) => ({
92
110
  action: action.action_type,
93
111
  name: action.action_type,
94
112
  })),
95
113
  submod: buildHierarchy(mod.wbs_code),
96
114
  }));
97
115
 
98
- return mainModules.map(mod => ({
116
+ return mainModules.map((mod) => ({
99
117
  name: mod.name,
100
118
  code: mod.module_code,
101
119
  permission: moduleActions
102
- .filter(action => action.module_code === mod.module_code)
103
- .map(action => ({
120
+ .filter((action) => action.module_code === mod.module_code)
121
+ .map((action) => ({
104
122
  action: action.action_type,
105
123
  name: action.action_type,
106
124
  })),
@@ -108,13 +126,16 @@ export class ModuleAccessRepository {
108
126
  }));
109
127
  }
110
128
 
111
- async updateModuleAccess(accessList: {
112
- role_code: string;
113
- module_code: string;
114
- action_type: string;
115
- access_flag: number;
116
- app_code: string;
117
- }[]): Promise<boolean> {
129
+ async updateModuleAccess(
130
+ accessList: {
131
+ role_code: string;
132
+ module_code: string;
133
+ action_type: string;
134
+ access_flag: number;
135
+ appcode: string;
136
+ }[],
137
+ appcode: string,
138
+ ): Promise<boolean> {
118
139
  try {
119
140
  for (const access of accessList) {
120
141
  const existing = await this.moduleAccessRepo.findOne({
@@ -122,7 +143,7 @@ export class ModuleAccessRepository {
122
143
  role_code: access.role_code,
123
144
  module_code: access.module_code,
124
145
  action_type: access.action_type,
125
- app_code: access.app_code,
146
+ appcode: access.appcode || appcode,
126
147
  },
127
148
  });
128
149
 
@@ -130,7 +151,9 @@ export class ModuleAccessRepository {
130
151
  existing.access_flag = access.access_flag;
131
152
  await this.moduleAccessRepo.save(existing);
132
153
  } else {
133
- await this.moduleAccessRepo.save(this.moduleAccessRepo.create(access));
154
+ await this.moduleAccessRepo.save(
155
+ this.moduleAccessRepo.create(access),
156
+ );
134
157
  }
135
158
  }
136
159
  return true;
@@ -140,24 +163,23 @@ export class ModuleAccessRepository {
140
163
  }
141
164
  }
142
165
 
143
-
144
166
  // src/module/module-access/repository/module-access.repository.ts
145
167
 
146
168
  async getModuleUIConfig(moduleCode: string, roleIds: number[]) {
147
169
  const module = await this.moduleRepo.findOne({
148
170
  where: { module_code: moduleCode },
149
171
  });
150
-
172
+
151
173
  if (!module) {
152
174
  throw new BadRequestException('Module not found');
153
175
  }
154
-
176
+
155
177
  const roles = await this.roleRepo.find({
156
178
  where: { id: In(roleIds) },
157
179
  });
158
-
159
- const roleCodes = roles.map(role => role.code);
160
-
180
+
181
+ const roleCodes = roles.map((role) => role.code);
182
+
161
183
  const actions = await this.moduleAccessRepo.find({
162
184
  where: {
163
185
  module_code: moduleCode,
@@ -165,9 +187,9 @@ export class ModuleAccessRepository {
165
187
  access_flag: 1,
166
188
  },
167
189
  });
168
-
169
- const uniqueActions = [...new Set(actions.map(a => a.action_type))];
170
-
190
+
191
+ const uniqueActions = [...new Set(actions.map((a) => a.action_type))];
192
+
171
193
  return {
172
194
  entity_type: module.entity_type,
173
195
  title: module.title,
@@ -175,7 +197,4 @@ export class ModuleAccessRepository {
175
197
  action: uniqueActions,
176
198
  };
177
199
  }
178
-
179
-
180
-
181
200
  }
@@ -9,22 +9,22 @@ export class MenuService {
9
9
  /**
10
10
  * Fetch and construct menu hierarchy for a given user.
11
11
  */
12
- async getUserMenu(userId: number) {
12
+ async getUserMenu(userId: number,appcode:string): Promise<{ menu: any[] }> {
13
13
  // Step 1: Get the roles of the user
14
- const roleCodes = await this.menuRepository.getUserRoles(userId);
14
+ const roleCodes = await this.menuRepository.getUserRoles(userId,appcode);
15
15
  if (!roleCodes.length) {
16
16
  return { menu: [] }; // Return empty menu if user has no roles
17
17
  }
18
18
 
19
19
  // Step 2: Get the modules the user has access to
20
20
  const moduleCodes =
21
- await this.menuRepository.getAccessibleModules(roleCodes);
21
+ await this.menuRepository.getAccessibleModules(roleCodes,appcode);
22
22
  if (!moduleCodes.length) {
23
23
  return { menu: [] }; // Return empty menu if no accessible modules
24
24
  }
25
25
 
26
26
  // Step 3: Get the menu items based on accessible modules
27
- const menuItems = await this.menuRepository.getMenuItems(moduleCodes);
27
+ const menuItems = await this.menuRepository.getMenuItems(moduleCodes,appcode);
28
28
 
29
29
  // Step 4: Build hierarchical menu structure
30
30
  const menuTree = this.buildMenuHierarchy(menuItems);
@@ -13,31 +13,36 @@ export class ModuleAccessService {
13
13
  private readonly moduleAccessRepository: ModuleAccessRepository,
14
14
  ) {}
15
15
 
16
- async getRoles() {
17
- return this.moduleAccessRepository.getRoles();
16
+ async getRoles({ appcode }: { appcode: string }) {
17
+ return this.moduleAccessRepository.getRoles({ appcode });
18
18
  }
19
19
 
20
- async getModules() {
21
- return this.moduleAccessRepository.getModules();
20
+ async getModules({ appcode }: { appcode: string }) {
21
+ return this.moduleAccessRepository.getModules({
22
+ appcode,
23
+ });
22
24
  }
23
25
 
24
- async getAccessListing(roleIds: number[]) {
25
- return this.moduleAccessRepository.getAccessListing(roleIds);
26
+ async getAccessListing(roleIds: number[], appcode: string) {
27
+ return this.moduleAccessRepository.getAccessListing(roleIds, appcode);
26
28
  }
27
29
 
28
- async getMenuListing(mainModIds: string[]) {
29
- return this.moduleAccessRepository.getMenuListing(mainModIds);
30
+ async getMenuListing(mainModIds: string[], appcode: string) {
31
+ return this.moduleAccessRepository.getMenuListing(mainModIds, appcode);
30
32
  }
31
33
 
32
34
  async updateModuleAccess(
33
35
  moduleAccessData: any[],
36
+ appcode: string,
34
37
  ): Promise<{ success: boolean; msg: string }> {
35
38
  if (!moduleAccessData || moduleAccessData.length === 0) {
36
39
  return { success: false, msg: 'No data provided' };
37
40
  }
38
41
 
39
- const result =
40
- await this.moduleAccessRepository.updateModuleAccess(moduleAccessData);
42
+ const result = await this.moduleAccessRepository.updateModuleAccess(
43
+ moduleAccessData,
44
+ appcode,
45
+ );
41
46
 
42
47
  if (result) {
43
48
  return { success: true, msg: 'Module access updated successfully' };
@@ -51,7 +56,4 @@ export class ModuleAccessService {
51
56
  async getModuleUIConfig(moduleCode: string, roleIds: number[]) {
52
57
  return this.moduleAccessRepository.getModuleUIConfig(moduleCode, roleIds);
53
58
  }
54
-
55
-
56
-
57
59
  }
@@ -55,4 +55,5 @@ export class CreateUserDto extends BaseEntity {
55
55
  invitation_status: string;
56
56
  is_defaultadmin: number;
57
57
  is_customer: number;
58
+ appcode: string;
58
59
  }
@@ -10,9 +10,6 @@ export class Role extends BaseEntity {
10
10
  this.entity_type = ENTITYTYPE_ROLE;
11
11
  }
12
12
 
13
- @Column({ length: 50, type: 'varchar', nullable: true })
14
- app_code: string;
15
-
16
13
  @Column({ type: 'int', nullable: true })
17
14
  is_system: number;
18
15
 
@@ -23,4 +23,7 @@ export class UserRoleMapping {
23
23
 
24
24
  @Column({ type: 'int', nullable: true })
25
25
  is_default: number;
26
+
27
+ @Column({type: 'varchar'})
28
+ appcode: string;
26
29
  }
@@ -24,9 +24,13 @@ export class RoleService extends EntityServiceImpl {
24
24
  async createEntity(
25
25
  entityData: BaseEntity,
26
26
  loggedInUser: UserData | null,
27
+ manager?: EntityManager,
28
+ appcode?: string,
27
29
  ): Promise<BaseEntity> {
28
30
  let role = entityData as Role;
29
-
31
+ if(appcode){
32
+ role.appcode = appcode ;
33
+ }
30
34
  if (await this.roleRepository.isRoleNameExists(role.name,{organization_id:entityData.organization_id})) {
31
35
  throw new BadRequestException('Role name already exists.');
32
36
  }
@@ -51,7 +55,7 @@ export class RoleService extends EntityServiceImpl {
51
55
  module_code: perm.module_code,
52
56
  action_type: perm.action_type,
53
57
  access_flag: perm.access_flag,
54
- app_code: perm.app_code,
58
+ appcode: perm.appcode,
55
59
  }),
56
60
  );
57
61
 
@@ -128,7 +132,7 @@ export class RoleService extends EntityServiceImpl {
128
132
  module_code: perm.module_code,
129
133
  action_type: perm.action_type,
130
134
  access_flag: perm.access_flag,
131
- app_code: perm.app_code,
135
+ appcode: perm.appcode,
132
136
  }),
133
137
  );
134
138
 
@@ -35,8 +35,12 @@ export class UserService extends EntityServiceImpl {
35
35
  entityData: BaseEntity,
36
36
  loggedInUser: UserData | null,
37
37
  manager?: EntityManager,
38
+ appcode?: string,
38
39
  ): Promise<BaseEntity> {
39
40
  let userData = entityData as CreateUserDto;
41
+ if(appcode){
42
+ userData.appcode = appcode;
43
+ }
40
44
  let existingUser = await this.userRepository.findByEmailId(
41
45
  userData.email_id,
42
46
  loggedInUser?.organization_id,