rez_core 6.5.1 → 6.5.3

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 (236) hide show
  1. package/dist/app.module.js +1 -1
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/config/database.config.js +1 -1
  4. package/dist/config/database.config.js.map +1 -1
  5. package/dist/constant/status.constant.d.ts +4 -0
  6. package/dist/constant/status.constant.js +9 -0
  7. package/dist/constant/status.constant.js.map +1 -0
  8. package/dist/core.module.js +60 -38
  9. package/dist/core.module.js.map +1 -1
  10. package/dist/module/auth/strategies/jwt.strategy.d.ts +1 -1
  11. package/dist/module/auth/strategies/jwt.strategy.js +2 -2
  12. package/dist/module/auth/strategies/jwt.strategy.js.map +1 -1
  13. package/dist/module/dashboard/dashboard.module.js +1 -1
  14. package/dist/module/dashboard/dashboard.module.js.map +1 -1
  15. package/dist/module/dashboard/service/dashboard.service.js +2 -3
  16. package/dist/module/dashboard/service/dashboard.service.js.map +1 -1
  17. package/dist/module/enterprise/controller/organization.controller.d.ts +1 -3
  18. package/dist/module/enterprise/controller/organization.controller.js +2 -6
  19. package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
  20. package/dist/module/enterprise/enterprise.module.js +1 -3
  21. package/dist/module/enterprise/enterprise.module.js.map +1 -1
  22. package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +1 -0
  23. package/dist/module/enterprise/entity/organization-app-mapping.entity.js +4 -0
  24. package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
  25. package/dist/module/enterprise/entity/organization.entity.d.ts +2 -1
  26. package/dist/module/enterprise/entity/organization.entity.js +4 -2
  27. package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
  28. package/dist/module/enterprise/repository/enterprise.repository.d.ts +2 -0
  29. package/dist/module/enterprise/repository/enterprise.repository.js +10 -0
  30. package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
  31. package/dist/module/enterprise/service/organization.service.d.ts +2 -2
  32. package/dist/module/enterprise/service/organization.service.js +4 -4
  33. package/dist/module/enterprise/service/organization.service.js.map +1 -1
  34. package/dist/module/filter/service/filter.service.js +2 -2
  35. package/dist/module/filter/service/filter.service.js.map +1 -1
  36. package/dist/module/layout/controller/layout.controller.d.ts +1 -3
  37. package/dist/module/layout/controller/layout.controller.js +3 -7
  38. package/dist/module/layout/controller/layout.controller.js.map +1 -1
  39. package/dist/module/layout/entity/header-section.entity.d.ts +0 -2
  40. package/dist/module/layout/entity/header-section.entity.js +0 -8
  41. package/dist/module/layout/entity/header-section.entity.js.map +1 -1
  42. package/dist/module/layout/layout.module.js +1 -2
  43. package/dist/module/layout/layout.module.js.map +1 -1
  44. package/dist/module/layout/repository/header-section.repository.d.ts +0 -1
  45. package/dist/module/layout/repository/header-section.repository.js +0 -5
  46. package/dist/module/layout/repository/header-section.repository.js.map +1 -1
  47. package/dist/module/layout/service/header-section.service.d.ts +1 -1
  48. package/dist/module/layout/service/header-section.service.js +1 -1
  49. package/dist/module/layout/service/header-section.service.js.map +1 -1
  50. package/dist/module/listmaster/service/list-master.service.js +1 -8
  51. package/dist/module/listmaster/service/list-master.service.js.map +1 -1
  52. package/dist/module/meta/entity/app-master.entity.d.ts +8 -4
  53. package/dist/module/meta/entity/app-master.entity.js +30 -12
  54. package/dist/module/meta/entity/app-master.entity.js.map +1 -1
  55. package/dist/module/meta/repository/app-master.repository.js +1 -1
  56. package/dist/module/meta/repository/app-master.repository.js.map +1 -1
  57. package/dist/module/meta/service/attribute-master.service.js +0 -2
  58. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  59. package/dist/module/meta/service/entity-service-impl.service.js +2 -6
  60. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  61. package/dist/module/module/controller/menu.controller.js +2 -2
  62. package/dist/module/module/controller/menu.controller.js.map +1 -1
  63. package/dist/module/module/controller/module-access.controller.d.ts +5 -6
  64. package/dist/module/module/controller/module-access.controller.js +33 -28
  65. package/dist/module/module/controller/module-access.controller.js.map +1 -1
  66. package/dist/module/module/entity/menu.entity.d.ts +6 -2
  67. package/dist/module/module/entity/menu.entity.js +19 -7
  68. package/dist/module/module/entity/menu.entity.js.map +1 -1
  69. package/dist/module/module/entity/module-access.entity.d.ts +15 -0
  70. package/dist/module/module/entity/module-access.entity.js +50 -0
  71. package/dist/module/module/entity/module-access.entity.js.map +1 -1
  72. package/dist/module/module/entity/module-action.entity.d.ts +4 -1
  73. package/dist/module/module/entity/module-action.entity.js +12 -3
  74. package/dist/module/module/entity/module-action.entity.js.map +1 -1
  75. package/dist/module/module/entity/module.entity.d.ts +3 -5
  76. package/dist/module/module/entity/module.entity.js +8 -18
  77. package/dist/module/module/entity/module.entity.js.map +1 -1
  78. package/dist/module/module/module.module.d.ts +1 -1
  79. package/dist/module/module/module.module.js +7 -9
  80. package/dist/module/module/module.module.js.map +1 -1
  81. package/dist/module/module/repository/menu.repository.d.ts +4 -4
  82. package/dist/module/module/repository/menu.repository.js +17 -27
  83. package/dist/module/module/repository/menu.repository.js.map +1 -1
  84. package/dist/module/module/repository/module-access.repository.d.ts +11 -12
  85. package/dist/module/module/repository/module-access.repository.js +37 -40
  86. package/dist/module/module/repository/module-access.repository.js.map +1 -1
  87. package/dist/module/module/service/menu.service.d.ts +3 -5
  88. package/dist/module/module/service/menu.service.js +9 -12
  89. package/dist/module/module/service/menu.service.js.map +1 -1
  90. package/dist/module/module/service/module-access.service.d.ts +13 -17
  91. package/dist/module/module/service/module-access.service.js +17 -25
  92. package/dist/module/module/service/module-access.service.js.map +1 -1
  93. package/dist/module/notification/service/otp.service.js.map +1 -1
  94. package/dist/module/user/controller/user.controller.d.ts +0 -2
  95. package/dist/module/user/controller/user.controller.js +0 -13
  96. package/dist/module/user/controller/user.controller.js.map +1 -1
  97. package/dist/module/user/dto/create-user.dto.d.ts +6 -3
  98. package/dist/module/user/dto/create-user.dto.js +17 -11
  99. package/dist/module/user/dto/create-user.dto.js.map +1 -1
  100. package/dist/module/user/entity/role.entity.d.ts +19 -6
  101. package/dist/module/user/entity/role.entity.js +68 -19
  102. package/dist/module/user/entity/role.entity.js.map +1 -1
  103. package/dist/module/user/entity/user-role-mapping.entity.d.ts +10 -0
  104. package/dist/module/user/entity/user-role-mapping.entity.js +33 -1
  105. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  106. package/dist/module/user/entity/user.entity.d.ts +19 -5
  107. package/dist/module/user/entity/user.entity.js +69 -15
  108. package/dist/module/user/entity/user.entity.js.map +1 -1
  109. package/dist/module/user/repository/role.repository.d.ts +5 -2
  110. package/dist/module/user/repository/role.repository.js +13 -8
  111. package/dist/module/user/repository/role.repository.js.map +1 -1
  112. package/dist/module/user/repository/user.repository.d.ts +3 -2
  113. package/dist/module/user/repository/user.repository.js +9 -6
  114. package/dist/module/user/repository/user.repository.js.map +1 -1
  115. package/dist/module/user/service/login.service.d.ts +3 -5
  116. package/dist/module/user/service/login.service.js +37 -42
  117. package/dist/module/user/service/login.service.js.map +1 -1
  118. package/dist/module/user/service/role.service.d.ts +21 -11
  119. package/dist/module/user/service/role.service.js +32 -38
  120. package/dist/module/user/service/role.service.js.map +1 -1
  121. package/dist/module/user/service/user-session.service.d.ts +1 -1
  122. package/dist/module/user/service/user-session.service.js +4 -4
  123. package/dist/module/user/service/user-session.service.js.map +1 -1
  124. package/dist/module/user/service/user.service.d.ts +28 -20
  125. package/dist/module/user/service/user.service.js +41 -56
  126. package/dist/module/user/service/user.service.js.map +1 -1
  127. package/dist/module/user/user.module.js +1 -5
  128. package/dist/module/user/user.module.js.map +1 -1
  129. package/dist/module/workflow/repository/action-data.repository.d.ts +1 -1
  130. package/dist/module/workflow/repository/action-data.repository.js +6 -8
  131. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  132. package/dist/module/workflow/repository/action.repository.d.ts +1 -1
  133. package/dist/module/workflow/repository/action.repository.js +10 -10
  134. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  135. package/dist/module/workflow/repository/form-master.repository.d.ts +1 -1
  136. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  137. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  138. package/dist/module/workflow/service/action-data.service.js +1 -2
  139. package/dist/module/workflow/service/action-data.service.js.map +1 -1
  140. package/dist/module/workflow/service/action.service.js +2 -2
  141. package/dist/module/workflow/service/action.service.js.map +1 -1
  142. package/dist/module/workflow/service/comm-template.service.js +0 -2
  143. package/dist/module/workflow/service/comm-template.service.js.map +1 -1
  144. package/dist/module/workflow/service/entity-modification.service.js +0 -1
  145. package/dist/module/workflow/service/entity-modification.service.js.map +1 -1
  146. package/dist/module/workflow/service/form-master.service.js +2 -2
  147. package/dist/module/workflow/service/form-master.service.js.map +1 -1
  148. package/dist/module/workflow/service/task.service.js +0 -3
  149. package/dist/module/workflow/service/task.service.js.map +1 -1
  150. package/dist/module/workflow/service/workflow-meta.service.js +2 -7
  151. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  152. package/dist/module/workflow/service/workflow.service.js +2 -2
  153. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  154. package/dist/module/workflow-automation/service/workflow-automation.service.js +1 -4
  155. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  156. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +0 -2
  157. package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -1
  158. package/dist/table.config.d.ts +2 -2
  159. package/dist/tsconfig.build.tsbuildinfo +1 -1
  160. package/package.json +1 -1
  161. package/src/app.module.ts +3 -3
  162. package/src/config/database.config.ts +1 -1
  163. package/src/constant/status.constant.ts +4 -0
  164. package/src/core.module.ts +55 -44
  165. package/src/module/auth/strategies/jwt.strategy.ts +2 -2
  166. package/src/module/dashboard/dashboard.module.ts +3 -3
  167. package/src/module/dashboard/service/dashboard.service.ts +2 -3
  168. package/src/module/enterprise/controller/organization.controller.ts +0 -1
  169. package/src/module/enterprise/enterprise.module.ts +1 -2
  170. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +4 -1
  171. package/src/module/enterprise/entity/organization.entity.ts +5 -3
  172. package/src/module/enterprise/repository/enterprise.repository.ts +14 -0
  173. package/src/module/enterprise/service/organization.service.ts +1 -1
  174. package/src/module/filter/service/filter.service.ts +2 -3
  175. package/src/module/layout/controller/layout.controller.ts +1 -8
  176. package/src/module/layout/entity/header-section.entity.ts +0 -6
  177. package/src/module/layout/layout.module.ts +1 -1
  178. package/src/module/layout/repository/header-section.repository.ts +0 -6
  179. package/src/module/layout/service/header-section.service.ts +1 -1
  180. package/src/module/listmaster/service/list-master.service.ts +1 -9
  181. package/src/module/meta/entity/app-master.entity.ts +22 -9
  182. package/src/module/meta/repository/app-master.repository.ts +1 -1
  183. package/src/module/meta/service/attribute-master.service.ts +0 -2
  184. package/src/module/meta/service/entity-service-impl.service.ts +2 -6
  185. package/src/module/module/controller/menu.controller.ts +2 -2
  186. package/src/module/module/controller/module-access.controller.ts +25 -20
  187. package/src/module/module/entity/menu.entity.ts +17 -7
  188. package/src/module/module/entity/module-access.entity.ts +41 -1
  189. package/src/module/module/entity/module-action.entity.ts +11 -4
  190. package/src/module/module/entity/module.entity.ts +7 -14
  191. package/src/module/module/module.module.ts +3 -4
  192. package/src/module/module/repository/menu.repository.ts +19 -31
  193. package/src/module/module/repository/module-access.repository.ts +43 -47
  194. package/src/module/module/service/menu.service.ts +11 -13
  195. package/src/module/module/service/module-access.service.ts +24 -40
  196. package/src/module/notification/service/otp.service.ts +3 -2
  197. package/src/module/user/controller/user.controller.ts +0 -9
  198. package/src/module/user/dto/create-user.dto.ts +19 -6
  199. package/src/module/user/entity/role.entity.ts +62 -16
  200. package/src/module/user/entity/user-role-mapping.entity.ts +29 -3
  201. package/src/module/user/entity/user.entity.ts +54 -13
  202. package/src/module/user/repository/role.repository.ts +19 -11
  203. package/src/module/user/repository/user.repository.ts +10 -6
  204. package/src/module/user/service/login.service.ts +38 -50
  205. package/src/module/user/service/role.service.ts +40 -60
  206. package/src/module/user/service/user-session.service.ts +4 -4
  207. package/src/module/user/service/user.service.ts +59 -91
  208. package/src/module/user/user.module.ts +3 -4
  209. package/src/module/workflow/repository/action-data.repository.ts +6 -8
  210. package/src/module/workflow/repository/action.repository.ts +11 -11
  211. package/src/module/workflow/repository/form-master.repository.ts +2 -2
  212. package/src/module/workflow/service/action-data.service.ts +3 -2
  213. package/src/module/workflow/service/action.service.ts +2 -2
  214. package/src/module/workflow/service/comm-template.service.ts +0 -2
  215. package/src/module/workflow/service/entity-modification.service.ts +0 -1
  216. package/src/module/workflow/service/form-master.service.ts +2 -2
  217. package/src/module/workflow/service/task.service.ts +0 -3
  218. package/src/module/workflow/service/workflow-meta.service.ts +2 -7
  219. package/src/module/workflow/service/workflow.service.ts +2 -2
  220. package/src/module/workflow-automation/service/workflow-automation.service.ts +1 -4
  221. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +0 -2
  222. package/src/resources/dev.properties.yaml +2 -2
  223. package/.claude/settings.local.json +0 -26
  224. package/.idea/250218_nodejs_core.iml +0 -9
  225. package/.idea/codeStyles/Project.xml +0 -59
  226. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  227. package/.idea/copilot.data.migration.agent.xml +0 -6
  228. package/.idea/copilot.data.migration.ask.xml +0 -6
  229. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  230. package/.idea/copilot.data.migration.edit.xml +0 -6
  231. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  232. package/.idea/misc.xml +0 -6
  233. package/.idea/modules.xml +0 -8
  234. package/.idea/prettier.xml +0 -6
  235. package/.idea/vcs.xml +0 -6
  236. package/server.log +0 -850
@@ -2,7 +2,7 @@ import {
2
2
  BadRequestException,
3
3
  Body,
4
4
  Controller,
5
- Get,
5
+ Get, HttpCode, HttpStatus,
6
6
  Inject,
7
7
  Param,
8
8
  Post,
@@ -24,15 +24,16 @@ export class ModuleAccessController {
24
24
  ) {}
25
25
 
26
26
  @Get('roles')
27
+ @HttpCode(HttpStatus.OK)
27
28
  async getRoles(
28
- @Query('appcode') appcode: string,
29
+ @Query('app_id') appId: number,
29
30
  @Query('include') include: string, // ✅ declare it as boolean
30
31
  @Request() req,
31
32
  ) {
32
33
  const { level_type, level_id } = req.user.userData;
33
34
 
34
35
  return this.moduleAccessService.getRoles({
35
- appcode,
36
+ appId,
36
37
  level_type,
37
38
  level_id,
38
39
  include: include === 'true', // ensure it's either true or false
@@ -40,36 +41,39 @@ export class ModuleAccessController {
40
41
  }
41
42
 
42
43
  @Get('modules')
43
- async getModules(@Query('appcode') appcode: string, @Request() req) {
44
+ @HttpCode(HttpStatus.OK)
45
+ async getModules(@Query('app_id') app_id: number, @Request() req) {
44
46
  const loggedInUser = req.user.userData;
45
47
  return this.moduleAccessService.getModules({
46
- appcode,
48
+ app_id,
47
49
  loggedInUser
48
50
  });
49
51
  }
50
52
 
51
53
  @Get('access-listing')
54
+ @HttpCode(HttpStatus.OK)
52
55
  async getAccessListing(
53
56
  @Query('roles') roleIds: string,
54
- @Query('appcode') queryAppcode: string,
57
+ @Query('app_id') queryAppId: string,
55
58
  @Request() req,
56
59
  ) {
57
60
  const roleIdArray = roleIds.split(',').map(Number);
58
- const appcode = queryAppcode || req.user.userData.appcode;
61
+ const appId = queryAppId || req.user.userData.app_id;
59
62
  const level_type = req.user.userData.level_type;
60
63
  const level_id = req.user.userData.level_id;
61
64
  return this.moduleAccessService.getAccessListing(
62
65
  roleIdArray,
63
- appcode,
66
+ appId,
64
67
  level_type,
65
68
  level_id,
66
69
  );
67
70
  }
68
71
 
69
72
  @Get('menu-listing')
73
+ @HttpCode(HttpStatus.OK)
70
74
  async getMenuListing(
71
75
  @Query('mainmod') mainModIds: string,
72
- @Query('appcode') appcode: string,
76
+ @Query('app_id') appId: number,
73
77
  @Request() req,
74
78
  ) {
75
79
  const mainModArray = mainModIds.split(',').map(String);
@@ -77,12 +81,13 @@ export class ModuleAccessController {
77
81
 
78
82
  return this.moduleAccessService.getMenuListing(
79
83
  mainModArray,
80
- appcode,
84
+ appId,
81
85
  level_type,
82
86
  );
83
87
  }
84
88
 
85
89
  @Post('update')
90
+ @HttpCode(HttpStatus.OK)
86
91
  async updateModuleAccess(@Body() moduleAccessData: any[]) {
87
92
  return this.moduleAccessService.updateModuleAccess(moduleAccessData);
88
93
  }
@@ -90,44 +95,44 @@ export class ModuleAccessController {
90
95
  // src/module/module-access/controller/module-access.controller.ts
91
96
 
92
97
  @Get('ui-config')
98
+ @HttpCode(HttpStatus.OK)
93
99
  async getModuleUIConfig(
94
- @Query('module_code') moduleCode: string,
100
+ @Query('module_id') moduleId: number,
95
101
  @Request() req,
96
102
  ) {
97
103
  const userId = req.user.userData?.id;
98
- const appcode = req.user.userData?.appcode;
99
- const roles = await this.menuService.getUserRoles(userId, appcode); // returns ['1', '4']
104
+ const app_id = req.user.userData?.app_id;
105
+ const roles = await this.menuService.getUserRoles(userId, app_id); // returns ['1', '4']
100
106
 
101
107
  if (!roles || roles.length === 0) {
102
108
  throw new BadRequestException('User has no roles');
103
109
  }
104
110
 
105
111
  return this.moduleAccessService.getModuleUIConfig(
106
- moduleCode,
112
+ moduleId,
107
113
  roles.map((id) => Number(id)),
108
114
  );
109
115
  }
110
116
 
111
117
  @Get('user-permissions')
118
+ @HttpCode(HttpStatus.OK)
112
119
  async getUserPermissions(@Request() req) {
113
120
  const userData = req.user.userData;
114
121
 
115
122
  const userId = userData?.id;
116
- const appcode = userData?.appcode;
123
+ const app_id = userData?.app_id;
117
124
  const level_type = userData?.level_type;
118
125
  const level_id = userData?.level_id;
119
- const enterprise_id = userData?.enterprise_id;
120
126
 
121
- if (!userId || !appcode || !level_type || !level_id || !enterprise_id) {
127
+ if (!userId || !app_id || !level_type || !level_id) {
122
128
  throw new BadRequestException('Invalid token data');
123
129
  }
124
130
 
125
131
  return this.moduleAccessService.getUserPermissions({
126
132
  userId,
127
- appcode,
133
+ app_id,
128
134
  level_type,
129
- level_id,
130
- enterprise_id,
135
+ level_id
131
136
  });
132
137
  }
133
138
  }
@@ -1,4 +1,6 @@
1
- import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
1
+ import { Column, Entity, JoinColumn, ManyToOne, OneToOne, PrimaryGeneratedColumn } from 'typeorm';
2
+ import { ModuleData } from './module.entity';
3
+ import { AppMaster } from 'src/module/meta/entity/app-master.entity';
2
4
 
3
5
  @Entity({ name: 'sso_menu' })
4
6
  export class MenuData {
@@ -8,6 +10,13 @@ export class MenuData {
8
10
  @Column({ type: 'varchar', length: 100, nullable: true })
9
11
  name: string;
10
12
 
13
+ @Column({ type: 'int', nullable: true })
14
+ module_id: number
15
+
16
+ @ManyToOne(() => ModuleData, {nullable: true, onDelete: 'SET NULL'})
17
+ @JoinColumn({ name: 'module_id', referencedColumnName: 'id' })
18
+ moduleData: ModuleData;
19
+
11
20
  @Column({ type: 'varchar', length: 100, nullable: true })
12
21
  module_code: string;
13
22
 
@@ -26,18 +35,19 @@ export class MenuData {
26
35
  @Column({ type: 'varchar', length: 100, nullable: true })
27
36
  module_level: string;
28
37
 
29
- @Column({ type: 'int', nullable: true })
30
- parent_id: number;
31
-
32
- @Column({ type: 'varchar', length: 100, nullable: true })
33
- parent_code: string;
34
-
35
38
  @Column({ type: 'int', nullable: true })
36
39
  ui_visible: number;
37
40
 
38
41
  @Column({ type: 'varchar', nullable: true })
39
42
  appcode: string;
40
43
 
44
+ @Column({ type: 'int', nullable: true })
45
+ app_id: number;
46
+
47
+ @ManyToOne(() => AppMaster, {nullable: true, onDelete: 'SET NULL'})
48
+ @JoinColumn({ name: 'app_id', referencedColumnName: 'id' })
49
+ app: AppMaster;
50
+
41
51
  @Column({ type: 'varchar', nullable: true })
42
52
  level_type: string;
43
53
  }
@@ -1,4 +1,9 @@
1
- import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
1
+ import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToOne, PrimaryGeneratedColumn } from 'typeorm';
2
+ import { ModuleData } from './module.entity';
3
+ import { Role } from 'src/module/user/entity/role.entity';
4
+ import { ModuleAction } from './module-action.entity';
5
+ import { AppMaster } from 'src/module/meta/entity/app-master.entity';
6
+ import { EnterpriseData } from 'src/module/enterprise/entity/enterprise.entity';
2
7
 
3
8
  @Entity({ name: 'sso_module_access' })
4
9
  export class ModuleAccess {
@@ -8,18 +13,53 @@ export class ModuleAccess {
8
13
  @Column({ type: 'varchar', length: 100, nullable: true })
9
14
  module_code: string;
10
15
 
16
+ @Column({ type: 'int', nullable: true })
17
+ module_id: number;
18
+
19
+ @ManyToOne(() => ModuleData, { nullable: true, onDelete: 'SET NULL' })
20
+ @JoinColumn({ name: 'module_id', referencedColumnName: 'id' })
21
+ module: ModuleData;
22
+
11
23
  @Column({ type: 'varchar', length: 100, nullable: true })
12
24
  role_code: string;
13
25
 
26
+ @Column({ type: 'int', nullable: true })
27
+ role_id: number;
28
+
29
+ @ManyToOne(() => Role, { nullable: true, onDelete: 'SET NULL' })
30
+ @JoinColumn({ name: 'role_id', referencedColumnName: 'id' })
31
+ role: Role;
32
+
14
33
  @Column({ type: 'int', nullable: true })
15
34
  access_flag: number;
16
35
 
17
36
  @Column({ type: 'varchar', length: 100, nullable: true })
18
37
  action_type: string;
19
38
 
39
+ @Column({ type: 'int', nullable: true })
40
+ action_id: number;
41
+
42
+ @ManyToOne(() => ModuleAction, { nullable: true, onDelete: 'SET NULL' })
43
+ @JoinColumn({ name: 'action_id', referencedColumnName: 'id' })
44
+ action: ModuleAction;
45
+
20
46
  @Column({ type: 'varchar', length: 100, nullable: true })
21
47
  level_type: string;
22
48
 
23
49
  @Column({ type: 'varchar', length: 100, nullable: true })
24
50
  appcode: string;
51
+
52
+ @Column({type: 'int', nullable: true })
53
+ app_id: number
54
+
55
+ @ManyToOne(() => AppMaster, { nullable: true, onDelete: 'SET NULL' })
56
+ @JoinColumn({ name: 'app_id', referencedColumnName: 'id' })
57
+ app: AppMaster;
58
+
59
+ @Column({ type: 'int', nullable: true })
60
+ enterprise_id: number;
61
+
62
+ @ManyToOne(() => EnterpriseData, { nullable: true, onDelete: 'SET NULL' })
63
+ @JoinColumn({ name: 'enterprise_id', referencedColumnName: 'id' })
64
+ enterprise: EnterpriseData;
25
65
  }
@@ -1,11 +1,18 @@
1
- import { Column, Entity, PrimaryGeneratedColumn, Unique } from 'typeorm';
1
+ import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
2
+ import { ModuleData } from './module.entity';
2
3
 
3
- @Entity({ name: 'sso_module_action' }) // <- new table name
4
- @Unique(['module_code', 'action_type']) // enforce uniqueness per module + action
4
+ @Entity({ name: 'sso_module_ucp' }) // <- new table name
5
5
  export class ModuleAction {
6
6
  @PrimaryGeneratedColumn()
7
7
  id: number;
8
8
 
9
+ @Column({ type: 'int', nullable: true })
10
+ module_id: number;
11
+
12
+ @ManyToOne(() => ModuleData, {nullable: true, onDelete: 'SET NULL'})
13
+ @JoinColumn({ name: 'module_id', referencedColumnName: 'id' })
14
+ module: ModuleData;
15
+
9
16
  @Column({ type: 'varchar', length: 100, nullable: true })
10
17
  module_code: string;
11
18
 
@@ -13,5 +20,5 @@ export class ModuleAction {
13
20
  action_name: string;
14
21
 
15
22
  @Column({ type: 'varchar', length: 50, nullable: true })
16
- action_type: string;
23
+ action_code: string;
17
24
  }
@@ -1,4 +1,5 @@
1
- import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
1
+ import { AppMaster } from 'src/module/meta/entity/app-master.entity';
2
+ import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
2
3
 
3
4
  @Entity({ name: 'sso_module' })
4
5
  export class ModuleData {
@@ -20,15 +21,6 @@ export class ModuleData {
20
21
  @Column({ type: 'varchar', length: 100, nullable: true })
21
22
  module_level: string;
22
23
 
23
- @Column({ type: 'int', nullable: true })
24
- parent_id: number;
25
-
26
- @Column({ type: 'varchar', length: 100, nullable: true })
27
- parent_code: string;
28
-
29
- @Column({ type: 'int', nullable: true })
30
- ui_visible: number;
31
-
32
24
  @Column({ type: 'varchar', length: 100, nullable: true })
33
25
  entity_type: string;
34
26
 
@@ -38,11 +30,12 @@ export class ModuleData {
38
30
  @Column({ type: 'varchar', length: 100, nullable: true })
39
31
  component_name: string;
40
32
 
41
- @Column({ type: 'json', nullable: true })
42
- ui_config: JSON;
33
+ @Column({type: 'int', nullable: true})
34
+ app_id: number;
43
35
 
44
- @Column({ type: 'varchar', length: 100, nullable: true })
45
- appcode: string;
36
+ @ManyToOne(() => AppMaster, {nullable: true, onDelete: 'SET NULL'})
37
+ @JoinColumn({ name: 'app_id', referencedColumnName: 'id' })
38
+ app: AppMaster;
46
39
 
47
40
  @Column({ type: 'varchar', length: 100, nullable: true })
48
41
  type: string;
@@ -27,16 +27,15 @@ import { ListMasterModule } from '../listmaster/listmaster.module';
27
27
  Role,
28
28
  ]),
29
29
  UtilsModule,
30
- UserModule,
31
- ListMasterModule,
30
+ UserModule
32
31
  ],
33
32
  controllers: [MenuController, ModuleAccessController],
34
33
  providers: [
35
34
  ModuleAccessService,
36
35
  MenuService,
37
36
  MenuRepository,
38
- ModuleAccessRepository,
37
+ ModuleAccessRepository
39
38
  ],
40
39
  exports: [ModuleAccessService,MenuService],
41
40
  })
42
- export class ModuleModule {}
41
+ export class ModuleAccessModule { }
@@ -17,7 +17,7 @@ export class MenuRepository extends Repository<MenuData> {
17
17
  super(MenuData, dataSource.createEntityManager());
18
18
  }
19
19
 
20
- async getUserRoles(userId: number, appcode: string): Promise<number[]> {
20
+ async getUserRoles(userId: number, app_id: number): Promise<number[]> {
21
21
  const userRoleMappingRepo =
22
22
  this.reflectionHelper.getRepoService('UserRoleMapping');
23
23
 
@@ -26,7 +26,7 @@ export class MenuRepository extends Repository<MenuData> {
26
26
  .innerJoin('sso_role', 'role', 'role.id = urm.role_id')
27
27
  .select('urm.role_id', 'role_id')
28
28
  .where('urm.user_id = :userId', { userId })
29
- .andWhere('role.appcode = :appcode', { appcode })
29
+ .andWhere('role.app_id = :app_id', { app_id })
30
30
  .getRawMany();
31
31
 
32
32
  return roles.map((r) => r.role_id);
@@ -34,37 +34,26 @@ export class MenuRepository extends Repository<MenuData> {
34
34
 
35
35
  async getAccessibleModules(
36
36
  roleIds: number[],
37
- appCode: string,
38
- ): Promise<string[]> {
39
- const roleRepo = this.reflectionHelper.getRepoService('Role');
40
-
41
- const roleCodes = await roleRepo
42
- .createQueryBuilder('role')
43
- .select('role.code', 'code')
44
- .where('role.id IN (:...roleIds)', { roleIds })
45
- .getRawMany();
46
-
47
- const codes = roleCodes.map((r) => r.code);
48
-
49
- if (codes.length === 0) return [];
37
+ app_id: number,
38
+ ): Promise<number[]> {
50
39
 
51
40
  const modules = await this.moduleAccessRepo
52
41
  .createQueryBuilder('moduleAccess')
53
- .select('moduleAccess.module_code')
54
- .where('moduleAccess.role_code IN (:...codes)', { codes })
42
+ .select('moduleAccess.module_id')
43
+ .where('moduleAccess.role_id IN (:...roleIds)', { roleIds })
55
44
  .andWhere('moduleAccess.access_flag > 0')
56
- .andWhere('LOWER(moduleAccess.appcode) = LOWER(:appCode)', { appCode })
45
+ .andWhere('moduleAccess.app_id = :app_id', { app_id: app_id })
57
46
  .getMany();
58
47
 
59
- return Array.from(new Set(modules.map((module) => module.module_code)));
48
+ return Array.from(new Set(modules.map((module) => module.module_id)));
60
49
  }
61
50
 
62
51
  /**
63
52
  * ✅ FIXED: Use this.createQueryBuilder() instead of this.menuData.createQueryBuilder()
64
53
  */
65
54
  async getMenuItems(
66
- moduleCodes: string[],
67
- appcode: string,
55
+ modules: number[],
56
+ app_id: number,
68
57
  levelType: string,
69
58
  ) {
70
59
  return await this.menuData
@@ -74,12 +63,12 @@ export class MenuRepository extends Repository<MenuData> {
74
63
  'module',
75
64
  `
76
65
  menu.module_code = module.module_code
77
- AND LOWER(menu.appcode) = LOWER(module.appcode)
66
+ AND menu.app_id = module.app_id
78
67
  AND menu.level_type = module.level_type
79
68
  `,
80
69
  )
81
- .where('menu.module_code IN (:...moduleCodes)', { moduleCodes })
82
- .andWhere('LOWER(menu.appcode) = LOWER(:appcode)', { appcode })
70
+ .where('menu.module_id IN (:...modules)', { modules: modules })
71
+ .andWhere('menu.app_id = :app_id', { app_id: app_id })
83
72
  .andWhere('menu.level_type = :levelType', { levelType })
84
73
  .andWhere('menu.ui_visible = 1')
85
74
  .select([
@@ -87,15 +76,14 @@ export class MenuRepository extends Repository<MenuData> {
87
76
  'module.component_name AS component',
88
77
  'module.title AS title',
89
78
  'module.entity_type AS entity_type',
90
- 'module.type AS type',
91
- 'module.ui_config AS ui_config',
79
+ 'module.type AS type'
92
80
  ])
93
81
  .getRawMany();
94
82
  }
95
83
 
96
84
  async resolveUserRoles(
97
85
  userId: number,
98
- appcode: string,
86
+ app_id: number,
99
87
  levelType: string,
100
88
  levelId: number,
101
89
  ): Promise<number[]> {
@@ -114,7 +102,7 @@ export class MenuRepository extends Repository<MenuData> {
114
102
  const getUserUrm = await repo.findOne({
115
103
  where: {
116
104
  user_id: userId,
117
- appcode: appcode,
105
+ app_id: app_id,
118
106
  },
119
107
  });
120
108
 
@@ -135,7 +123,7 @@ export class MenuRepository extends Repository<MenuData> {
135
123
  .where('urm.user_id = :userId', { userId: userId })
136
124
  .andWhere('urm.level_type = :levelType', { levelType })
137
125
  .andWhere('urm.level_id = :levelId', { levelId: levelId })
138
- .andWhere('role.appcode = :appcode', { appcode })
126
+ .andWhere('role.app_id = :app_id', { app_id: app_id })
139
127
  .getRawMany();
140
128
 
141
129
  if (roles.length) return roles.map((r) => r.urm_role_id);
@@ -160,7 +148,7 @@ export class MenuRepository extends Repository<MenuData> {
160
148
  .where('urm.user_id = :userId', { userId })
161
149
  .andWhere('urm.level_type = :levelType', { levelType: 'BRN' })
162
150
  .andWhere('urm.level_id = :levelId', { levelId: brandId })
163
- .andWhere('role.appcode = :appcode', { appcode })
151
+ .andWhere('role.app_id = :app_id', { app_id: app_id })
164
152
  .getRawMany();
165
153
 
166
154
  if (roles.length) return roles.map((r) => r.urm_role_id);
@@ -174,7 +162,7 @@ export class MenuRepository extends Repository<MenuData> {
174
162
  .where('urm.user_id = :userId', { userId })
175
163
  .andWhere('urm.level_type = :levelType', { levelType: 'ORG' })
176
164
  .andWhere('urm.level_id = :levelId', { levelId: orgId })
177
- .andWhere('role.appcode = :appcode', { appcode })
165
+ .andWhere('role.app_id = :app_id', { app_id: app_id })
178
166
  .getRawMany();
179
167
 
180
168
  if (roles.length) return roles.map((r) => r.urm_role_id);