rez_core 6.5.27 → 6.5.28

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 (396) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.idea/250218_nodejs_core.iml +9 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/copilot.data.migration.agent.xml +6 -0
  6. package/.idea/copilot.data.migration.ask.xml +6 -0
  7. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  8. package/.idea/copilot.data.migration.edit.xml +6 -0
  9. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  10. package/.idea/misc.xml +6 -0
  11. package/.idea/modules.xml +8 -0
  12. package/.idea/prettier.xml +6 -0
  13. package/.idea/vcs.xml +6 -0
  14. package/dist/app.module.js +3 -3
  15. package/dist/app.module.js.map +1 -1
  16. package/dist/constant/status.constant.d.ts +4 -0
  17. package/dist/constant/status.constant.js +9 -0
  18. package/dist/constant/status.constant.js.map +1 -0
  19. package/dist/core.module.js +60 -38
  20. package/dist/core.module.js.map +1 -1
  21. package/dist/module/auth/strategies/jwt.strategy.d.ts +2 -1
  22. package/dist/module/auth/strategies/jwt.strategy.js +3 -2
  23. package/dist/module/auth/strategies/jwt.strategy.js.map +1 -1
  24. package/dist/module/dashboard/dashboard.module.js +1 -1
  25. package/dist/module/dashboard/dashboard.module.js.map +1 -1
  26. package/dist/module/dashboard/service/dashboard.service.js +2 -3
  27. package/dist/module/dashboard/service/dashboard.service.js.map +1 -1
  28. package/dist/module/enterprise/controller/enterprise.controller.d.ts +12 -0
  29. package/dist/module/enterprise/controller/enterprise.controller.js +57 -0
  30. package/dist/module/enterprise/controller/enterprise.controller.js.map +1 -0
  31. package/dist/module/enterprise/controller/meta.controller.d.ts +9 -0
  32. package/dist/module/enterprise/controller/meta.controller.js +43 -0
  33. package/dist/module/enterprise/controller/meta.controller.js.map +1 -0
  34. package/dist/module/enterprise/controller/organization.controller.d.ts +12 -4
  35. package/dist/module/enterprise/controller/organization.controller.js +64 -8
  36. package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
  37. package/dist/module/enterprise/enterprise.module.js +10 -15
  38. package/dist/module/enterprise/enterprise.module.js.map +1 -1
  39. package/dist/module/enterprise/entity/enterprise.entity.d.ts +1 -3
  40. package/dist/module/enterprise/entity/enterprise.entity.js +4 -12
  41. package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
  42. package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +6 -1
  43. package/dist/module/enterprise/entity/organization-app-mapping.entity.js +21 -4
  44. package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
  45. package/dist/module/enterprise/entity/organization.entity.d.ts +3 -18
  46. package/dist/module/enterprise/entity/organization.entity.js +8 -74
  47. package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
  48. package/dist/module/enterprise/repository/enterprise.repository.d.ts +4 -2
  49. package/dist/module/enterprise/repository/enterprise.repository.js +19 -4
  50. package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
  51. package/dist/module/enterprise/service/brand-profile.service.d.ts +0 -0
  52. package/dist/module/enterprise/service/brand-profile.service.js +1 -0
  53. package/dist/module/enterprise/service/brand-profile.service.js.map +1 -0
  54. package/dist/module/enterprise/service/brand.service.d.ts +0 -3
  55. package/dist/module/enterprise/service/brand.service.js +0 -17
  56. package/dist/module/enterprise/service/brand.service.js.map +1 -1
  57. package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
  58. package/dist/module/enterprise/service/enterprise.service.js +4 -4
  59. package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
  60. package/dist/module/enterprise/service/organization.service.d.ts +4 -4
  61. package/dist/module/enterprise/service/organization.service.js +101 -24
  62. package/dist/module/enterprise/service/organization.service.js.map +1 -1
  63. package/dist/module/enterprise/service/populate-meta.service.d.ts +9 -0
  64. package/dist/module/{meta → enterprise}/service/populate-meta.service.js +2 -8
  65. package/dist/module/enterprise/service/populate-meta.service.js.map +1 -0
  66. package/dist/module/enterprise/service/school.service.d.ts +0 -0
  67. package/dist/module/enterprise/service/school.service.js +1 -0
  68. package/dist/module/enterprise/service/school.service.js.map +1 -0
  69. package/dist/module/entity_json/controller/entity_json.controller.d.ts +9 -2
  70. package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
  71. package/dist/module/entity_json/entity/entityJson.entity.d.ts +1 -2
  72. package/dist/module/entity_json/entity/entityJson.entity.js +1 -5
  73. package/dist/module/entity_json/entity/entityJson.entity.js.map +1 -1
  74. package/dist/module/entity_json/entity_json.module.js +2 -7
  75. package/dist/module/entity_json/entity_json.module.js.map +1 -1
  76. package/dist/module/entity_json/service/entity_json.service.d.ts +10 -2
  77. package/dist/module/entity_json/service/entity_json.service.js +23 -97
  78. package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
  79. package/dist/module/filter/controller/filter.controller.d.ts +0 -12
  80. package/dist/module/filter/controller/filter.controller.js +1 -1
  81. package/dist/module/filter/controller/filter.controller.js.map +1 -1
  82. package/dist/module/filter/filter.module.js +2 -11
  83. package/dist/module/filter/filter.module.js.map +1 -1
  84. package/dist/module/filter/service/filter.service.d.ts +2 -38
  85. package/dist/module/filter/service/filter.service.js +50 -43
  86. package/dist/module/filter/service/filter.service.js.map +1 -1
  87. package/dist/module/filter/service/saved-filter.service.d.ts +2 -3
  88. package/dist/module/filter/service/saved-filter.service.js +18 -14
  89. package/dist/module/filter/service/saved-filter.service.js.map +1 -1
  90. package/dist/module/integration/service/integration.service.d.ts +0 -1
  91. package/dist/module/integration/service/integration.service.js +1 -2
  92. package/dist/module/integration/service/integration.service.js.map +1 -1
  93. package/dist/module/integration/service/wrapper.service.js +0 -1
  94. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  95. package/dist/module/layout/controller/layout.controller.d.ts +1 -3
  96. package/dist/module/layout/controller/layout.controller.js +3 -7
  97. package/dist/module/layout/controller/layout.controller.js.map +1 -1
  98. package/dist/module/layout/entity/header-section.entity.d.ts +0 -2
  99. package/dist/module/layout/entity/header-section.entity.js +0 -8
  100. package/dist/module/layout/entity/header-section.entity.js.map +1 -1
  101. package/dist/module/layout/layout.module.js +1 -2
  102. package/dist/module/layout/layout.module.js.map +1 -1
  103. package/dist/module/layout/repository/header-section.repository.d.ts +0 -1
  104. package/dist/module/layout/repository/header-section.repository.js +0 -5
  105. package/dist/module/layout/repository/header-section.repository.js.map +1 -1
  106. package/dist/module/layout/service/header-section.service.d.ts +1 -1
  107. package/dist/module/layout/service/header-section.service.js +1 -1
  108. package/dist/module/layout/service/header-section.service.js.map +1 -1
  109. package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +0 -41
  110. package/dist/module/linked_attributes/controller/linked_attributes.controller.js +0 -90
  111. package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -1
  112. package/dist/module/linked_attributes/linked_attributes.module.js +1 -8
  113. package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -1
  114. package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +1 -65
  115. package/dist/module/linked_attributes/service/linked_attributes.service.js +2 -287
  116. package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
  117. package/dist/module/listmaster/service/list-master.service.js +1 -8
  118. package/dist/module/listmaster/service/list-master.service.js.map +1 -1
  119. package/dist/module/meta/controller/meta.controller.d.ts +1 -6
  120. package/dist/module/meta/controller/meta.controller.js +1 -19
  121. package/dist/module/meta/controller/meta.controller.js.map +1 -1
  122. package/dist/module/meta/entity/app-master.entity.d.ts +8 -4
  123. package/dist/module/meta/entity/app-master.entity.js +30 -12
  124. package/dist/module/meta/entity/app-master.entity.js.map +1 -1
  125. package/dist/module/meta/entity/entity-master.entity.d.ts +0 -1
  126. package/dist/module/meta/entity/entity-master.entity.js +1 -8
  127. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  128. package/dist/module/meta/entity.module.js +2 -5
  129. package/dist/module/meta/entity.module.js.map +1 -1
  130. package/dist/module/meta/repository/app-master.repository.js +1 -1
  131. package/dist/module/meta/repository/app-master.repository.js.map +1 -1
  132. package/dist/module/meta/service/attribute-master.service.d.ts +1 -6
  133. package/dist/module/meta/service/attribute-master.service.js +2 -22
  134. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  135. package/dist/module/meta/service/entity-master.service.js +0 -1
  136. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  137. package/dist/module/meta/service/entity-relation.service.d.ts +3 -4
  138. package/dist/module/meta/service/entity-relation.service.js +4 -10
  139. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  140. package/dist/module/meta/service/entity-service-impl.service.d.ts +1 -1
  141. package/dist/module/meta/service/entity-service-impl.service.js +10 -14
  142. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  143. package/dist/module/meta/service/entity-table.service.d.ts +3 -2
  144. package/dist/module/meta/service/entity-table.service.js +23 -19
  145. package/dist/module/meta/service/entity-table.service.js.map +1 -1
  146. package/dist/module/meta/service/resolver.service.d.ts +1 -1
  147. package/dist/module/meta/service/resolver.service.js +3 -6
  148. package/dist/module/meta/service/resolver.service.js.map +1 -1
  149. package/dist/module/module/controller/menu.controller.js +2 -2
  150. package/dist/module/module/controller/menu.controller.js.map +1 -1
  151. package/dist/module/module/controller/module-access.controller.d.ts +3 -4
  152. package/dist/module/module/controller/module-access.controller.js +15 -10
  153. package/dist/module/module/controller/module-access.controller.js.map +1 -1
  154. package/dist/module/module/entity/menu.entity.d.ts +6 -4
  155. package/dist/module/module/entity/menu.entity.js +16 -12
  156. package/dist/module/module/entity/menu.entity.js.map +1 -1
  157. package/dist/module/module/entity/module-access.entity.d.ts +15 -0
  158. package/dist/module/module/entity/module-access.entity.js +50 -0
  159. package/dist/module/module/entity/module-access.entity.js.map +1 -1
  160. package/dist/module/module/entity/module-action.entity.d.ts +4 -2
  161. package/dist/module/module/entity/module-action.entity.js +11 -6
  162. package/dist/module/module/entity/module-action.entity.js.map +1 -1
  163. package/dist/module/module/entity/module.entity.d.ts +3 -5
  164. package/dist/module/module/entity/module.entity.js +8 -18
  165. package/dist/module/module/entity/module.entity.js.map +1 -1
  166. package/dist/module/module/module.module.d.ts +1 -1
  167. package/dist/module/module/module.module.js +5 -7
  168. package/dist/module/module/module.module.js.map +1 -1
  169. package/dist/module/module/repository/menu.repository.d.ts +4 -4
  170. package/dist/module/module/repository/menu.repository.js +17 -27
  171. package/dist/module/module/repository/menu.repository.js.map +1 -1
  172. package/dist/module/module/repository/module-access.repository.d.ts +7 -7
  173. package/dist/module/module/repository/module-access.repository.js +86 -48
  174. package/dist/module/module/repository/module-access.repository.js.map +1 -1
  175. package/dist/module/module/service/menu.service.d.ts +3 -5
  176. package/dist/module/module/service/menu.service.js +9 -12
  177. package/dist/module/module/service/menu.service.js.map +1 -1
  178. package/dist/module/module/service/module-access.service.d.ts +8 -11
  179. package/dist/module/module/service/module-access.service.js +24 -26
  180. package/dist/module/module/service/module-access.service.js.map +1 -1
  181. package/dist/module/notification/entity/notification.entity.d.ts +17 -2
  182. package/dist/module/notification/entity/notification.entity.js +68 -2
  183. package/dist/module/notification/entity/notification.entity.js.map +1 -1
  184. package/dist/module/notification/notification.module.js +0 -2
  185. package/dist/module/notification/notification.module.js.map +1 -1
  186. package/dist/module/notification/service/notification.service.d.ts +1 -3
  187. package/dist/module/notification/service/notification.service.js +2 -5
  188. package/dist/module/notification/service/notification.service.js.map +1 -1
  189. package/dist/module/notification/service/otp.service.js.map +1 -1
  190. package/dist/module/user/controller/login.controller.d.ts +1 -3
  191. package/dist/module/user/controller/login.controller.js +2 -6
  192. package/dist/module/user/controller/login.controller.js.map +1 -1
  193. package/dist/module/user/controller/user.controller.d.ts +0 -2
  194. package/dist/module/user/controller/user.controller.js +0 -13
  195. package/dist/module/user/controller/user.controller.js.map +1 -1
  196. package/dist/module/user/dto/create-user.dto.d.ts +6 -3
  197. package/dist/module/user/dto/create-user.dto.js +17 -11
  198. package/dist/module/user/dto/create-user.dto.js.map +1 -1
  199. package/dist/module/user/entity/role.entity.d.ts +18 -6
  200. package/dist/module/user/entity/role.entity.js +64 -19
  201. package/dist/module/user/entity/role.entity.js.map +1 -1
  202. package/dist/module/user/entity/user-role-mapping.entity.d.ts +10 -0
  203. package/dist/module/user/entity/user-role-mapping.entity.js +33 -1
  204. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  205. package/dist/module/user/entity/user-session.entity.d.ts +0 -2
  206. package/dist/module/user/entity/user-session.entity.js +2 -20
  207. package/dist/module/user/entity/user-session.entity.js.map +1 -1
  208. package/dist/module/user/entity/user.entity.d.ts +17 -5
  209. package/dist/module/user/entity/user.entity.js +61 -15
  210. package/dist/module/user/entity/user.entity.js.map +1 -1
  211. package/dist/module/user/repository/role.repository.d.ts +6 -2
  212. package/dist/module/user/repository/role.repository.js +16 -8
  213. package/dist/module/user/repository/role.repository.js.map +1 -1
  214. package/dist/module/user/repository/user-role-mapping.repository.d.ts +1 -0
  215. package/dist/module/user/repository/user-role-mapping.repository.js +3 -0
  216. package/dist/module/user/repository/user-role-mapping.repository.js.map +1 -1
  217. package/dist/module/user/repository/user.repository.d.ts +4 -2
  218. package/dist/module/user/repository/user.repository.js +19 -7
  219. package/dist/module/user/repository/user.repository.js.map +1 -1
  220. package/dist/module/user/repository/userSession.repository.d.ts +1 -0
  221. package/dist/module/user/repository/userSession.repository.js +3 -0
  222. package/dist/module/user/repository/userSession.repository.js.map +1 -1
  223. package/dist/module/user/service/login.service.d.ts +3 -5
  224. package/dist/module/user/service/login.service.js +43 -42
  225. package/dist/module/user/service/login.service.js.map +1 -1
  226. package/dist/module/user/service/role.service.d.ts +24 -11
  227. package/dist/module/user/service/role.service.js +42 -38
  228. package/dist/module/user/service/role.service.js.map +1 -1
  229. package/dist/module/user/service/user-role-mapping.service.d.ts +2 -0
  230. package/dist/module/user/service/user-role-mapping.service.js +6 -0
  231. package/dist/module/user/service/user-role-mapping.service.js.map +1 -1
  232. package/dist/module/user/service/user-session.service.d.ts +3 -4
  233. package/dist/module/user/service/user-session.service.js +10 -11
  234. package/dist/module/user/service/user-session.service.js.map +1 -1
  235. package/dist/module/user/service/user.service.d.ts +29 -20
  236. package/dist/module/user/service/user.service.js +44 -56
  237. package/dist/module/user/service/user.service.js.map +1 -1
  238. package/dist/module/user/user.module.js +1 -7
  239. package/dist/module/user/user.module.js.map +1 -1
  240. package/dist/module/workflow/repository/action-data.repository.d.ts +1 -1
  241. package/dist/module/workflow/repository/action-data.repository.js +6 -8
  242. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  243. package/dist/module/workflow/repository/action.repository.d.ts +1 -1
  244. package/dist/module/workflow/repository/action.repository.js +10 -10
  245. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  246. package/dist/module/workflow/repository/form-master.repository.d.ts +1 -1
  247. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  248. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  249. package/dist/module/workflow/service/action-data.service.js +1 -2
  250. package/dist/module/workflow/service/action-data.service.js.map +1 -1
  251. package/dist/module/workflow/service/action.service.js +2 -2
  252. package/dist/module/workflow/service/action.service.js.map +1 -1
  253. package/dist/module/workflow/service/comm-template.service.js +0 -2
  254. package/dist/module/workflow/service/comm-template.service.js.map +1 -1
  255. package/dist/module/workflow/service/entity-modification.service.js +0 -1
  256. package/dist/module/workflow/service/entity-modification.service.js.map +1 -1
  257. package/dist/module/workflow/service/form-master.service.js +2 -2
  258. package/dist/module/workflow/service/form-master.service.js.map +1 -1
  259. package/dist/module/workflow/service/populate-workflow.service.d.ts +1 -1
  260. package/dist/module/workflow/service/populate-workflow.service.js +1 -1
  261. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  262. package/dist/module/workflow/service/task.service.js +0 -3
  263. package/dist/module/workflow/service/task.service.js.map +1 -1
  264. package/dist/module/workflow/service/workflow-meta.service.js +2 -7
  265. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  266. package/dist/module/workflow/service/workflow.service.js +2 -2
  267. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  268. package/dist/module/workflow/workflow.module.js +2 -0
  269. package/dist/module/workflow/workflow.module.js.map +1 -1
  270. package/dist/module/workflow-automation/service/workflow-automation.service.js +11 -6
  271. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  272. package/dist/module/workflow-automation/workflow-automation.module.js +3 -1
  273. package/dist/module/workflow-automation/workflow-automation.module.js.map +1 -1
  274. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +0 -2
  275. package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -1
  276. package/dist/table.config.d.ts +2 -3
  277. package/dist/tsconfig.build.tsbuildinfo +1 -1
  278. package/package.json +2 -2
  279. package/server.log +850 -0
  280. package/src/app.module.ts +5 -5
  281. package/src/constant/status.constant.ts +4 -0
  282. package/src/core.module.ts +55 -44
  283. package/src/module/auth/strategies/jwt.strategy.ts +4 -2
  284. package/src/module/dashboard/dashboard.module.ts +3 -3
  285. package/src/module/dashboard/service/dashboard.service.ts +2 -3
  286. package/src/module/enterprise/controller/enterprise.controller.ts +40 -0
  287. package/src/module/enterprise/controller/meta.controller.ts +23 -0
  288. package/src/module/enterprise/controller/organization.controller.ts +60 -4
  289. package/src/module/enterprise/enterprise.module.ts +16 -18
  290. package/src/module/enterprise/entity/enterprise.entity.ts +5 -11
  291. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +18 -4
  292. package/src/module/enterprise/entity/organization.entity.ts +9 -59
  293. package/src/module/enterprise/repository/enterprise.repository.ts +26 -4
  294. package/src/module/enterprise/service/brand-profile.service.ts +10 -0
  295. package/src/module/enterprise/service/brand.service.ts +75 -5
  296. package/src/module/enterprise/service/enterprise.service.ts +10 -4
  297. package/src/module/enterprise/service/organization.service.ts +140 -23
  298. package/src/module/{meta → enterprise}/service/populate-meta.service.ts +2 -5
  299. package/src/module/enterprise/service/school.service.ts +5 -0
  300. package/src/module/entity_json/controller/entity_json.controller.ts +0 -13
  301. package/src/module/entity_json/entity/entityJson.entity.ts +1 -4
  302. package/src/module/entity_json/entity_json.module.ts +5 -9
  303. package/src/module/entity_json/service/entity_json.service.ts +49 -232
  304. package/src/module/filter/controller/filter.controller.ts +3 -1
  305. package/src/module/filter/filter.module.ts +3 -12
  306. package/src/module/filter/service/filter.service.ts +73 -130
  307. package/src/module/filter/service/saved-filter.service.ts +26 -16
  308. package/src/module/integration/service/integration.service.ts +2 -6
  309. package/src/module/integration/service/wrapper.service.ts +0 -1
  310. package/src/module/layout/controller/layout.controller.ts +1 -8
  311. package/src/module/layout/entity/header-section.entity.ts +0 -6
  312. package/src/module/layout/layout.module.ts +1 -1
  313. package/src/module/layout/repository/header-section.repository.ts +0 -6
  314. package/src/module/layout/service/header-section.service.ts +1 -1
  315. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +0 -100
  316. package/src/module/linked_attributes/linked_attributes.module.ts +2 -9
  317. package/src/module/linked_attributes/service/linked_attributes.service.ts +3 -578
  318. package/src/module/listmaster/service/list-master.service.ts +1 -9
  319. package/src/module/meta/controller/meta.controller.ts +3 -25
  320. package/src/module/meta/entity/app-master.entity.ts +22 -9
  321. package/src/module/meta/entity/entity-master.entity.ts +3 -9
  322. package/src/module/meta/entity.module.ts +5 -6
  323. package/src/module/meta/repository/app-master.repository.ts +1 -1
  324. package/src/module/meta/service/attribute-master.service.ts +1 -31
  325. package/src/module/meta/service/entity-master.service.ts +0 -1
  326. package/src/module/meta/service/entity-relation.service.ts +6 -10
  327. package/src/module/meta/service/entity-service-impl.service.ts +19 -14
  328. package/src/module/meta/service/entity-table.service.ts +20 -28
  329. package/src/module/meta/service/entity.service.ts +1 -0
  330. package/src/module/meta/service/resolver.service.ts +0 -4
  331. package/src/module/module/controller/menu.controller.ts +2 -2
  332. package/src/module/module/controller/module-access.controller.ts +16 -11
  333. package/src/module/module/entity/menu.entity.ts +14 -10
  334. package/src/module/module/entity/module-access.entity.ts +41 -1
  335. package/src/module/module/entity/module-action.entity.ts +10 -6
  336. package/src/module/module/entity/module.entity.ts +7 -14
  337. package/src/module/module/module.module.ts +2 -3
  338. package/src/module/module/repository/menu.repository.ts +19 -31
  339. package/src/module/module/repository/module-access.repository.ts +100 -63
  340. package/src/module/module/service/menu.service.ts +11 -13
  341. package/src/module/module/service/module-access.service.ts +26 -38
  342. package/src/module/notification/entity/notification.entity.ts +53 -3
  343. package/src/module/notification/notification.module.ts +0 -2
  344. package/src/module/notification/service/notification.service.ts +0 -1
  345. package/src/module/notification/service/otp.service.ts +3 -2
  346. package/src/module/user/controller/login.controller.ts +7 -8
  347. package/src/module/user/controller/user.controller.ts +0 -9
  348. package/src/module/user/dto/create-user.dto.ts +19 -6
  349. package/src/module/user/entity/role.entity.ts +59 -16
  350. package/src/module/user/entity/user-role-mapping.entity.ts +29 -3
  351. package/src/module/user/entity/user-session.entity.ts +3 -19
  352. package/src/module/user/entity/user.entity.ts +48 -13
  353. package/src/module/user/repository/role.repository.ts +24 -12
  354. package/src/module/user/repository/user-role-mapping.repository.ts +5 -1
  355. package/src/module/user/repository/user.repository.ts +28 -8
  356. package/src/module/user/repository/userSession.repository.ts +5 -1
  357. package/src/module/user/service/login.service.ts +47 -51
  358. package/src/module/user/service/role.service.ts +53 -60
  359. package/src/module/user/service/user-role-mapping.service.ts +23 -1
  360. package/src/module/user/service/user-session.service.ts +14 -11
  361. package/src/module/user/service/user.service.ts +64 -91
  362. package/src/module/user/user.module.ts +3 -5
  363. package/src/module/workflow/repository/action-data.repository.ts +6 -8
  364. package/src/module/workflow/repository/action.repository.ts +11 -11
  365. package/src/module/workflow/repository/form-master.repository.ts +2 -2
  366. package/src/module/workflow/service/action-data.service.ts +3 -2
  367. package/src/module/workflow/service/action.service.ts +2 -2
  368. package/src/module/workflow/service/comm-template.service.ts +0 -2
  369. package/src/module/workflow/service/entity-modification.service.ts +0 -1
  370. package/src/module/workflow/service/form-master.service.ts +2 -2
  371. package/src/module/workflow/service/populate-workflow.service.ts +1 -1
  372. package/src/module/workflow/service/task.service.ts +0 -3
  373. package/src/module/workflow/service/workflow-meta.service.ts +2 -7
  374. package/src/module/workflow/service/workflow.service.ts +2 -2
  375. package/src/module/workflow/workflow.module.ts +2 -0
  376. package/src/module/workflow-automation/service/workflow-automation.service.ts +19 -7
  377. package/src/module/workflow-automation/workflow-automation.module.ts +4 -3
  378. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +0 -2
  379. package/src/resources/dev.properties.yaml +2 -2
  380. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +0 -6
  381. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +0 -32
  382. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +0 -1
  383. package/dist/module/filter/service/flatjson-filter.service.d.ts +0 -32
  384. package/dist/module/filter/service/flatjson-filter.service.js +0 -632
  385. package/dist/module/filter/service/flatjson-filter.service.js.map +0 -1
  386. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.d.ts +0 -13
  387. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js +0 -64
  388. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js.map +0 -1
  389. package/dist/module/meta/service/populate-meta.service.d.ts +0 -13
  390. package/dist/module/meta/service/populate-meta.service.js.map +0 -1
  391. package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +0 -41
  392. package/src/module/entity_json/docs/FlatJson_Filterin_System.md +0 -2804
  393. package/src/module/filter/service/flatjson-filter.service.ts +0 -903
  394. package/src/module/filter/test/flatjson-filter.service.spec.ts +0 -415
  395. package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +0 -54
  396. package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +0 -244
@@ -1,17 +1,21 @@
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: 'varchar', length: 100, nullable: true })
10
- module_code: string;
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;
11
15
 
12
16
  @Column({ type: 'varchar', length: 100, nullable: true })
13
17
  action_name: string;
14
18
 
15
19
  @Column({ type: 'varchar', length: 50, nullable: true })
16
- action_type: string;
20
+ action_code: string;
17
21
  }
@@ -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;
@@ -14,7 +14,6 @@ import { UserRoleMapping } from '../user/entity/user-role-mapping.entity';
14
14
  import { UserModule } from '../user/user.module';
15
15
  import { Role } from '../user/entity/role.entity';
16
16
  import { ModuleAccess } from './entity/module-access.entity';
17
- import { ListMasterModule } from '../listmaster/listmaster.module';
18
17
 
19
18
  @Module({
20
19
  imports: [
@@ -28,7 +27,6 @@ import { ListMasterModule } from '../listmaster/listmaster.module';
28
27
  ]),
29
28
  UtilsModule,
30
29
  UserModule,
31
- ListMasterModule,
32
30
  ],
33
31
  controllers: [MenuController, ModuleAccessController],
34
32
  providers: [
@@ -39,4 +37,5 @@ import { ListMasterModule } from '../listmaster/listmaster.module';
39
37
  ],
40
38
  exports: [ModuleAccessService,MenuService],
41
39
  })
42
- export class ModuleModule {}
40
+ export class ModuleAccessModule {
41
+ }
@@ -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);
@@ -1,56 +1,55 @@
1
1
  import { BadRequestException, Injectable } from '@nestjs/common';
2
2
  import { InjectRepository } from '@nestjs/typeorm';
3
- import { In, Not, Repository, IsNull, DataSource } from 'typeorm';
3
+ import { In, IsNull, Not, Or, Repository } from 'typeorm';
4
4
  import { Role } from 'src/module/user/entity/role.entity';
5
5
  import { ModuleAccess } from '../entity/module-access.entity';
6
6
  import { ModuleAction } from '../entity/module-action.entity';
7
7
  import { ModuleData } from '../entity/module.entity';
8
+ import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
8
9
 
9
10
  @Injectable()
10
11
  export class ModuleAccessRepository {
11
12
  constructor(
12
13
  @InjectRepository(Role)
13
14
  private readonly roleRepo: Repository<Role>,
14
-
15
15
  @InjectRepository(ModuleData)
16
16
  private readonly moduleRepo: Repository<ModuleData>,
17
-
18
17
  @InjectRepository(ModuleAccess)
19
18
  private readonly moduleAccessRepo: Repository<ModuleAccess>,
20
-
21
19
  @InjectRepository(ModuleAction)
22
20
  private readonly moduleActionRepo: Repository<ModuleAction>,
23
-
24
- private readonly dataSource: DataSource,
25
- ) {}
21
+ private readonly reflectionHelper: ReflectionHelper,
22
+ ) {
23
+ }
26
24
 
27
25
  async getRoles({
28
- appcode,
29
- level_type,
30
- level_id,
31
- }: {
26
+ appcode,
27
+ level_type,
28
+ level_id,
29
+ }: {
32
30
  appcode: string;
33
31
  level_type?: string;
34
32
  level_id?: number;
35
33
  }) {
36
- const query = this.dataSource
37
- .createQueryBuilder()
38
- .select('*')
39
- .from('sso_role', 'role')
40
- .where('role.appcode = :appcode', { appcode })
41
- .andWhere('(role.is_factory IS NULL OR role.is_factory != 1)');
34
+ const where: any = {
35
+ app: {
36
+ code: appcode,
37
+ },
38
+ is_factory: Or(IsNull(), Not(1)), // 👈 include NULL and exclude factory roles
39
+ };
42
40
 
43
41
  if (level_type) {
44
- query.andWhere('role.level_type = :level_type', { level_type });
42
+ where.level_type = level_type;
45
43
  }
46
44
 
47
45
  if (level_id !== undefined) {
48
- query.andWhere('role.level_id = :level_id', {
49
- level_id: String(level_id),
50
- });
46
+ where.level_id = String(level_id);
51
47
  }
52
48
 
53
- const roles = await query.getRawMany(); // use getRawMany since you're selecting from a raw table
49
+ const roles = await this.roleRepo.find({
50
+ where,
51
+ select: ['id', 'name'], // keep returned data same as your mapping
52
+ });
54
53
 
55
54
  return roles.map((role) => ({
56
55
  label: role.name,
@@ -59,20 +58,30 @@ export class ModuleAccessRepository {
59
58
  }
60
59
 
61
60
  async getModules({
62
- appcode,
63
- loggedInUser,
64
- }: {
61
+ appcode,
62
+ loggedInUser,
63
+ }: {
65
64
  appcode: string;
66
65
  loggedInUser: any;
67
66
  }) {
68
67
  let modules: any[];
69
68
  if (loggedInUser.level_type == 'SCH') {
70
69
  modules = await this.moduleRepo.find({
71
- where: { module_level: 'MAINMOD', appcode, level_type: 'SCH' },
70
+ where: {
71
+ module_level: 'MAINMOD',
72
+ app: {
73
+ code: appcode,
74
+ },
75
+ level_type: 'SCH',
76
+ },
72
77
  });
73
78
  } else {
74
79
  modules = await this.moduleRepo.find({
75
- where: { module_level: 'MAINMOD', appcode },
80
+ where: {
81
+ module_level: 'MAINMOD', app: {
82
+ code: appcode,
83
+ },
84
+ },
76
85
  });
77
86
  }
78
87
 
@@ -105,53 +114,76 @@ export class ModuleAccessRepository {
105
114
  roles = await this.roleRepo.find({
106
115
  where: {
107
116
  id: In(fetchedRoleIds),
108
- appcode,
117
+ app: {
118
+ code: appcode,
119
+ },
109
120
  },
110
121
  });
111
122
  } else {
112
123
  roles = await this.roleRepo.find({
113
124
  where: {
114
125
  id: In(roleIds.map((id) => Number(id))),
115
- appcode,
126
+ app: {
127
+ code: appcode,
128
+ },
116
129
  },
117
130
  });
118
131
  }
119
132
 
120
133
  if (!roles.length) return [];
121
134
 
122
- const roleCodes = roles.map((role) => role.code);
123
-
124
135
  const moduleAccesses = await this.moduleAccessRepo.find({
125
136
  where: {
126
- role_code: In(roleCodes),
127
- appcode,
137
+ role_id: In(roles.map((role) => role.id)),
138
+ app: {
139
+ code: appcode,
140
+ },
141
+ level_type: levelType,
142
+ },
143
+ relations: {
144
+ app: true,
145
+ module: true,
128
146
  },
129
147
  });
130
148
 
131
149
  return roles.map((role) => ({
132
- role_code: role.code,
150
+ role_id: role.id,
133
151
  name: role.name,
134
152
  permission: moduleAccesses
135
- .filter((access) => access.role_code === role.code)
153
+ .filter((access) => access.role_id === role.id)
136
154
  .map((access) => ({
137
155
  action: access.action_type,
138
156
  access: access.access_flag,
139
- code: access.module_code,
157
+ module_id: access.module_id,
140
158
  level_type: access.level_type,
141
- appcode: access.appcode,
159
+ app_id: access.app_id,
160
+ code: access.module.module_code,
161
+ appcode: access.app.code,
142
162
  })),
143
163
  }));
144
164
  }
145
165
 
146
166
  async getAllModulesByLevel(mainModIds: string[], appcode: string, levelType) {
167
+ const appMasterRepo = this.reflectionHelper.getRepoService('AppMaster');
168
+
169
+ const appMaster = await appMasterRepo.find({
170
+ where: {
171
+ code: appcode
172
+ }
173
+ });
174
+
175
+ if (!appMaster) {
176
+ return {};
177
+ }
178
+
147
179
  const mainModules =
148
180
  mainModIds.length === 1 && mainModIds[0] === '-1'
149
181
  ? await this.moduleRepo.find({
150
- where: { module_level: 'MAINMOD', appcode },
151
- })
182
+ where: { module_level: 'MAINMOD', app_id: appMaster[0].id },
183
+ })
152
184
  : await this.moduleRepo.find({
153
- where: { id: In(mainModIds), module_level: 'MAINMOD', appcode },
154
- });
185
+ where: { id: In(mainModIds), module_level: 'MAINMOD', app: { code: appcode } },
186
+ });
155
187
 
156
188
  if (!mainModules.length) return {};
157
189
 
@@ -165,7 +197,7 @@ export class ModuleAccessRepository {
165
197
  .join(' OR '),
166
198
  Object.fromEntries(wbsCodes.map((code) => [`code${code}`, `${code}%`])),
167
199
  )
168
- .andWhere('module.appcode = :appcode', { appcode })
200
+ .andWhere('module.app_id = :app_id', { app_id: appMaster[0].id })
169
201
  .andWhere('module.module_code != :excludedCode', {
170
202
  excludedCode: 'all_organization_adm_org',
171
203
  })
@@ -175,26 +207,26 @@ export class ModuleAccessRepository {
175
207
  (mod) => mod.module_code != 'all_organization_adm_org',
176
208
  );
177
209
 
178
- const moduleCodes = allModules.map((m) => m.module_code);
210
+ const modules = allModules.map((m) => m.id);
179
211
 
180
212
  const allActions = await this.moduleActionRepo.find({
181
- where: { module_code: In(moduleCodes) },
213
+ where: { module_id: In(modules) },
182
214
  });
183
215
 
184
216
  // Map actions by module_code with VIEW action first
185
217
  const actionMap = allActions.reduce(
186
218
  (acc, action) => {
187
- if (!acc[action.module_code]) acc[action.module_code] = [];
219
+ if (!acc[action.module_id]) acc[action.module_id] = [];
188
220
 
189
221
  const actionItem = {
190
- action: action.action_type,
222
+ action: action.action_code,
191
223
  name: action.action_name,
192
224
  };
193
225
 
194
- if (action.action_type === 'VIEW') {
195
- acc[action.module_code].unshift(actionItem); // ➕ Add VIEW at start
226
+ if (action.action_code === 'VIEW') {
227
+ acc[action.module_id].unshift(actionItem); // ➕ Add VIEW at start
196
228
  } else {
197
- acc[action.module_code].push(actionItem); // ➕ Add others at end
229
+ acc[action.module_id].push(actionItem); // ➕ Add others at end
198
230
  }
199
231
 
200
232
  return acc;
@@ -215,10 +247,11 @@ export class ModuleAccessRepository {
215
247
  (mod) =>
216
248
  mod.wbs_code.startsWith(`${parentWbs}.`) &&
217
249
  mod.wbs_code.split('.').length ===
218
- parentWbs.split('.').length + 1,
250
+ parentWbs.split('.').length + 1,
219
251
  )
220
252
  .map((mod) => ({
221
253
  name: mod.name,
254
+ module_id: mod.id,
222
255
  code: mod.module_code,
223
256
  permission: actionMap[mod.module_code] || [],
224
257
  submod: buildHierarchy(mod.wbs_code),
@@ -228,6 +261,7 @@ export class ModuleAccessRepository {
228
261
  .filter((mod) => mod.level_type === lvl)
229
262
  .map((mod) => ({
230
263
  name: mod.name,
264
+ module_id: mod.id,
231
265
  code: mod.module_code,
232
266
  permission: actionMap[mod.module_code] || [],
233
267
  submod: buildHierarchy(mod.wbs_code),
@@ -254,10 +288,16 @@ export class ModuleAccessRepository {
254
288
  for (const access of accessList) {
255
289
  const existing = await this.moduleAccessRepo.findOne({
256
290
  where: {
257
- role_code: access.role_code,
258
- module_code: access.module_code,
291
+ role: {
292
+ code: access.role_code,
293
+ },
294
+ module: {
295
+ module_code: access.module_code,
296
+ },
259
297
  action_type: access.action_type,
260
- appcode: access.appcode,
298
+ app: {
299
+ code: access.appcode,
300
+ },
261
301
  level_type: access.level_type,
262
302
  },
263
303
  });
@@ -267,7 +307,7 @@ export class ModuleAccessRepository {
267
307
  await this.moduleAccessRepo.save(existing);
268
308
  } else {
269
309
  await this.moduleAccessRepo.save(
270
- await this.moduleAccessRepo.create(access),
310
+ this.moduleAccessRepo.create(access),
271
311
  );
272
312
  }
273
313
  }
@@ -285,13 +325,10 @@ export class ModuleAccessRepository {
285
325
 
286
326
  if (!module) throw new BadRequestException('Module not found');
287
327
 
288
- const roles = await this.roleRepo.find({ where: { id: In(roleIds) } });
289
- const roleCodes = roles.map((role) => role.code);
290
-
291
328
  const actions = await this.moduleAccessRepo.find({
292
329
  where: {
293
- module_code: moduleCode,
294
- role_code: In(roleCodes),
330
+ module_id: module.id,
331
+ role_id: In(roleIds),
295
332
  access_flag: 1,
296
333
  },
297
334
  });
@@ -301,16 +338,16 @@ export class ModuleAccessRepository {
301
338
  return {
302
339
  entity_type: module.entity_type,
303
340
  title: module.title,
304
- ui_config: module.ui_config || {},
305
341
  action: uniqueActions,
306
342
  };
307
343
  }
308
- async getModuleAccessByRoles(roleIds: number[], appcode: string) {
344
+
345
+ async getModuleAccessByRoles(roleIds: number[], app_id: number) {
309
346
  // Step 1: Get role codes from sso_role
310
347
  const roles = await this.roleRepo.find({
311
348
  where: {
312
349
  id: In(roleIds),
313
- appcode,
350
+ app_id,
314
351
  },
315
352
  select: ['id', 'code'],
316
353
  });
@@ -329,7 +366,7 @@ export class ModuleAccessRepository {
329
366
  'access.appcode AS appcode',
330
367
  ])
331
368
  .where('access.role_code IN (:...roleCodes)', { roleCodes })
332
- .andWhere('access.appcode = :appcode', { appcode })
369
+ .andWhere('access.app_id = :app_id', { app_id })
333
370
  .getRawMany();
334
371
 
335
372
  // Step 3: Format output
@@ -1,45 +1,43 @@
1
1
  import { Injectable } from '@nestjs/common';
2
2
  import { MenuRepository } from '../repository/menu.repository';
3
3
  import { MenuData } from '../entity/menu.entity';
4
- import { DataSource } from 'typeorm';
5
- import { UserRoleMapping } from 'src/module/user/entity/user-role-mapping.entity';
6
4
 
7
5
  @Injectable()
8
6
  export class MenuService {
9
7
  constructor(
10
8
  private readonly menuRepository: MenuRepository,
11
- private readonly datasource: DataSource,
12
- ) {}
9
+ ) {
10
+ }
13
11
 
14
12
  /**
15
13
  * Fetch and construct menu hierarchy for a given user.
16
14
  */
17
15
  async getUserMenu(
18
16
  userId: number,
19
- appcode: string,
17
+ app_id: number,
20
18
  levelType: 'ORG' | 'SCH',
21
19
  levelId: number,
22
20
  ): Promise<{ menu: any[] }> {
23
21
  // Step 1: Resolve roles (with fallback logic inside)
24
22
  const roleCodes = await this.menuRepository.resolveUserRoles(
25
23
  userId,
26
- appcode,
24
+ app_id,
27
25
  levelType,
28
26
  levelId,
29
27
  );
30
28
  if (!roleCodes.length) return { menu: [] };
31
29
 
32
30
  // Step 2: Get accessible modules
33
- const moduleCodes = await this.menuRepository.getAccessibleModules(
31
+ const modules = await this.menuRepository.getAccessibleModules(
34
32
  roleCodes,
35
- appcode,
33
+ app_id,
36
34
  );
37
- if (!moduleCodes.length) return { menu: [] };
35
+ if (!modules.length) return { menu: [] };
38
36
 
39
37
  // Step 3: Get menu items for the given level type
40
38
  const menuItems = await this.menuRepository.getMenuItems(
41
- moduleCodes,
42
- appcode,
39
+ modules,
40
+ app_id,
43
41
  levelType,
44
42
  );
45
43
 
@@ -76,7 +74,7 @@ export class MenuService {
76
74
  }
77
75
 
78
76
  // get user roles
79
- async getUserRoles(userId: number, appcode: string): Promise<any> {
80
- return this.menuRepository.getUserRoles(userId, appcode);
77
+ async getUserRoles(userId: number, app_id: number): Promise<any> {
78
+ return this.menuRepository.getUserRoles(userId, app_id);
81
79
  }
82
80
  }