rez_core 6.5.50 → 6.5.51
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.
- package/.claude/settings.local.json +26 -0
- package/.idea/250218_nodejs_core.iml +9 -0
- package/.idea/codeStyles/Project.xml +59 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/copilot.data.migration.agent.xml +6 -0
- package/.idea/copilot.data.migration.ask.xml +6 -0
- package/.idea/copilot.data.migration.ask2agent.xml +6 -0
- package/.idea/copilot.data.migration.edit.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/prettier.xml +6 -0
- package/.idea/vcs.xml +6 -0
- package/dist/app.module.js +5 -3
- package/dist/app.module.js.map +1 -1
- package/dist/constant/status.constant.d.ts +4 -0
- package/dist/constant/status.constant.js +9 -0
- package/dist/constant/status.constant.js.map +1 -0
- package/dist/core.module.js +63 -38
- package/dist/core.module.js.map +1 -1
- package/dist/module/app_master/app-master.module.d.ts +2 -0
- package/dist/module/app_master/app-master.module.js +28 -0
- package/dist/module/app_master/app-master.module.js.map +1 -0
- package/dist/module/app_master/controller/app-master.controller.js.map +1 -0
- package/dist/module/app_master/entity/app-master.entity.d.ts +17 -0
- package/dist/module/{meta → app_master}/entity/app-master.entity.js +30 -12
- package/dist/module/app_master/entity/app-master.entity.js.map +1 -0
- package/dist/module/{meta → app_master}/repository/app-master.repository.d.ts +2 -2
- package/dist/module/{meta → app_master}/repository/app-master.repository.js +4 -4
- package/dist/module/app_master/repository/app-master.repository.js.map +1 -0
- package/dist/module/app_master/service/app-master.service.js.map +1 -0
- package/dist/module/auth/strategies/jwt.strategy.d.ts +2 -1
- package/dist/module/auth/strategies/jwt.strategy.js +3 -2
- package/dist/module/auth/strategies/jwt.strategy.js.map +1 -1
- package/dist/module/dashboard/dashboard.module.js +1 -1
- package/dist/module/dashboard/dashboard.module.js.map +1 -1
- package/dist/module/dashboard/service/dashboard.service.js +1 -2
- package/dist/module/dashboard/service/dashboard.service.js.map +1 -1
- package/dist/module/enterprise/controller/enterprise.controller.d.ts +12 -0
- package/dist/module/enterprise/controller/enterprise.controller.js +57 -0
- package/dist/module/enterprise/controller/enterprise.controller.js.map +1 -0
- package/dist/module/enterprise/controller/meta.controller.d.ts +9 -0
- package/dist/module/enterprise/controller/meta.controller.js +43 -0
- package/dist/module/enterprise/controller/meta.controller.js.map +1 -0
- package/dist/module/enterprise/controller/organization.controller.d.ts +12 -4
- package/dist/module/enterprise/controller/organization.controller.js +64 -8
- package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
- package/dist/module/enterprise/enterprise.module.js +10 -15
- package/dist/module/enterprise/enterprise.module.js.map +1 -1
- package/dist/module/enterprise/entity/enterprise.entity.d.ts +1 -3
- package/dist/module/enterprise/entity/enterprise.entity.js +4 -12
- package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +6 -1
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js +21 -4
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization.entity.d.ts +3 -18
- package/dist/module/enterprise/entity/organization.entity.js +8 -74
- package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
- package/dist/module/enterprise/repository/enterprise.repository.d.ts +4 -2
- package/dist/module/enterprise/repository/enterprise.repository.js +19 -4
- package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
- package/dist/module/enterprise/service/brand-profile.service.d.ts +0 -0
- package/dist/module/enterprise/service/brand-profile.service.js +1 -0
- package/dist/module/enterprise/service/brand-profile.service.js.map +1 -0
- package/dist/module/enterprise/service/brand.service.d.ts +0 -3
- package/dist/module/enterprise/service/brand.service.js +0 -17
- package/dist/module/enterprise/service/brand.service.js.map +1 -1
- package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
- package/dist/module/enterprise/service/enterprise.service.js +4 -4
- package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
- package/dist/module/enterprise/service/organization.service.d.ts +4 -4
- package/dist/module/enterprise/service/organization.service.js +101 -24
- package/dist/module/enterprise/service/organization.service.js.map +1 -1
- package/dist/module/enterprise/service/populate-meta.service.d.ts +9 -0
- package/dist/module/{meta → enterprise}/service/populate-meta.service.js +2 -8
- package/dist/module/enterprise/service/populate-meta.service.js.map +1 -0
- package/dist/module/enterprise/service/school.service.d.ts +0 -0
- package/dist/module/enterprise/service/school.service.js +1 -0
- package/dist/module/enterprise/service/school.service.js.map +1 -0
- package/dist/module/entity_json/controller/entity_json.controller.d.ts +9 -2
- package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
- package/dist/module/entity_json/entity/entityJson.entity.d.ts +1 -2
- package/dist/module/entity_json/entity/entityJson.entity.js +1 -5
- package/dist/module/entity_json/entity/entityJson.entity.js.map +1 -1
- package/dist/module/entity_json/entity_json.module.js +2 -7
- package/dist/module/entity_json/entity_json.module.js.map +1 -1
- package/dist/module/entity_json/service/entity_json.service.d.ts +10 -2
- package/dist/module/entity_json/service/entity_json.service.js +25 -101
- package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
- package/dist/module/filter/controller/filter.controller.d.ts +0 -12
- package/dist/module/filter/controller/filter.controller.js +1 -1
- package/dist/module/filter/controller/filter.controller.js.map +1 -1
- package/dist/module/filter/filter.module.js +2 -11
- package/dist/module/filter/filter.module.js.map +1 -1
- package/dist/module/filter/service/filter.service.d.ts +2 -38
- package/dist/module/filter/service/filter.service.js +50 -43
- package/dist/module/filter/service/filter.service.js.map +1 -1
- package/dist/module/filter/service/saved-filter.service.d.ts +2 -3
- package/dist/module/filter/service/saved-filter.service.js +18 -14
- package/dist/module/filter/service/saved-filter.service.js.map +1 -1
- package/dist/module/integration/service/integration.service.d.ts +0 -1
- package/dist/module/integration/service/integration.service.js +1 -2
- package/dist/module/integration/service/integration.service.js.map +1 -1
- package/dist/module/integration/service/wrapper.service.js +0 -1
- package/dist/module/integration/service/wrapper.service.js.map +1 -1
- package/dist/module/layout/controller/layout.controller.d.ts +1 -3
- package/dist/module/layout/controller/layout.controller.js +3 -7
- package/dist/module/layout/controller/layout.controller.js.map +1 -1
- package/dist/module/layout/entity/header-section.entity.d.ts +0 -2
- package/dist/module/layout/entity/header-section.entity.js +0 -8
- package/dist/module/layout/entity/header-section.entity.js.map +1 -1
- package/dist/module/layout/layout.module.js +1 -2
- package/dist/module/layout/layout.module.js.map +1 -1
- package/dist/module/layout/repository/header-section.repository.d.ts +0 -1
- package/dist/module/layout/repository/header-section.repository.js +0 -5
- package/dist/module/layout/repository/header-section.repository.js.map +1 -1
- package/dist/module/layout/service/header-section.service.d.ts +1 -1
- package/dist/module/layout/service/header-section.service.js +1 -1
- package/dist/module/layout/service/header-section.service.js.map +1 -1
- package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +0 -41
- package/dist/module/linked_attributes/controller/linked_attributes.controller.js +0 -90
- package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -1
- package/dist/module/linked_attributes/linked_attributes.module.js +1 -8
- package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -1
- package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +1 -65
- package/dist/module/linked_attributes/service/linked_attributes.service.js +2 -287
- package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
- package/dist/module/listmaster/service/list-master.service.js +1 -8
- package/dist/module/listmaster/service/list-master.service.js.map +1 -1
- package/dist/module/meta/controller/meta.controller.d.ts +1 -6
- package/dist/module/meta/controller/meta.controller.js +1 -19
- package/dist/module/meta/controller/meta.controller.js.map +1 -1
- package/dist/module/meta/entity/entity-master.entity.d.ts +0 -1
- package/dist/module/meta/entity/entity-master.entity.js +1 -8
- package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
- package/dist/module/meta/entity.module.js +3 -14
- package/dist/module/meta/entity.module.js.map +1 -1
- package/dist/module/meta/service/attribute-master.service.d.ts +1 -6
- package/dist/module/meta/service/attribute-master.service.js +2 -22
- package/dist/module/meta/service/attribute-master.service.js.map +1 -1
- package/dist/module/meta/service/entity-master.service.js +0 -1
- package/dist/module/meta/service/entity-master.service.js.map +1 -1
- package/dist/module/meta/service/entity-relation.service.d.ts +3 -4
- package/dist/module/meta/service/entity-relation.service.js +4 -10
- package/dist/module/meta/service/entity-relation.service.js.map +1 -1
- package/dist/module/meta/service/entity-service-impl.service.d.ts +1 -1
- package/dist/module/meta/service/entity-service-impl.service.js +10 -14
- package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
- package/dist/module/meta/service/entity-table.service.d.ts +4 -5
- package/dist/module/meta/service/entity-table.service.js +24 -45
- package/dist/module/meta/service/entity-table.service.js.map +1 -1
- package/dist/module/meta/service/resolver.service.d.ts +1 -1
- package/dist/module/meta/service/resolver.service.js +3 -6
- package/dist/module/meta/service/resolver.service.js.map +1 -1
- package/dist/module/module/controller/module-access.controller.d.ts +3 -4
- package/dist/module/module/controller/module-access.controller.js +13 -8
- package/dist/module/module/controller/module-access.controller.js.map +1 -1
- package/dist/module/module/entity/menu.entity.d.ts +6 -3
- package/dist/module/module/entity/menu.entity.js +19 -10
- package/dist/module/module/entity/menu.entity.js.map +1 -1
- package/dist/module/module/entity/module-access.entity.d.ts +15 -1
- package/dist/module/module/entity/module-access.entity.js +49 -3
- package/dist/module/module/entity/module-access.entity.js.map +1 -1
- package/dist/module/module/entity/module-action.entity.d.ts +4 -2
- package/dist/module/module/entity/module-action.entity.js +11 -6
- package/dist/module/module/entity/module-action.entity.js.map +1 -1
- package/dist/module/module/entity/module.entity.d.ts +3 -5
- package/dist/module/module/entity/module.entity.js +8 -18
- package/dist/module/module/entity/module.entity.js.map +1 -1
- package/dist/module/module/module.module.d.ts +1 -1
- package/dist/module/module/module.module.js +5 -7
- package/dist/module/module/module.module.js.map +1 -1
- package/dist/module/module/repository/menu.repository.d.ts +3 -3
- package/dist/module/module/repository/menu.repository.js +38 -27
- package/dist/module/module/repository/menu.repository.js.map +1 -1
- package/dist/module/module/repository/module-access.repository.d.ts +6 -6
- package/dist/module/module/repository/module-access.repository.js +96 -48
- package/dist/module/module/repository/module-access.repository.js.map +1 -1
- package/dist/module/module/service/menu.service.d.ts +2 -4
- package/dist/module/module/service/menu.service.js +7 -10
- package/dist/module/module/service/menu.service.js.map +1 -1
- package/dist/module/module/service/module-access.service.d.ts +7 -10
- package/dist/module/module/service/module-access.service.js +22 -24
- package/dist/module/module/service/module-access.service.js.map +1 -1
- package/dist/module/notification/entity/notification.entity.d.ts +17 -2
- package/dist/module/notification/entity/notification.entity.js +68 -2
- package/dist/module/notification/entity/notification.entity.js.map +1 -1
- package/dist/module/notification/notification.module.js +0 -2
- package/dist/module/notification/notification.module.js.map +1 -1
- package/dist/module/notification/service/notification.service.d.ts +1 -3
- package/dist/module/notification/service/notification.service.js +2 -5
- package/dist/module/notification/service/notification.service.js.map +1 -1
- package/dist/module/notification/service/otp.service.js +0 -1
- package/dist/module/notification/service/otp.service.js.map +1 -1
- package/dist/module/user/controller/login.controller.d.ts +1 -3
- package/dist/module/user/controller/login.controller.js +2 -6
- package/dist/module/user/controller/login.controller.js.map +1 -1
- package/dist/module/user/controller/user.controller.d.ts +0 -2
- package/dist/module/user/controller/user.controller.js +0 -13
- package/dist/module/user/controller/user.controller.js.map +1 -1
- package/dist/module/user/dto/create-user.dto.d.ts +6 -3
- package/dist/module/user/dto/create-user.dto.js +17 -11
- package/dist/module/user/dto/create-user.dto.js.map +1 -1
- package/dist/module/user/entity/role.entity.d.ts +18 -6
- package/dist/module/user/entity/role.entity.js +64 -19
- package/dist/module/user/entity/role.entity.js.map +1 -1
- package/dist/module/user/entity/user-role-mapping.entity.d.ts +10 -0
- package/dist/module/user/entity/user-role-mapping.entity.js +33 -1
- package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
- package/dist/module/user/entity/user-session.entity.d.ts +0 -2
- package/dist/module/user/entity/user-session.entity.js +2 -20
- package/dist/module/user/entity/user-session.entity.js.map +1 -1
- package/dist/module/user/entity/user.entity.d.ts +17 -5
- package/dist/module/user/entity/user.entity.js +61 -15
- package/dist/module/user/entity/user.entity.js.map +1 -1
- package/dist/module/user/repository/role.repository.d.ts +7 -2
- package/dist/module/user/repository/role.repository.js +23 -8
- package/dist/module/user/repository/role.repository.js.map +1 -1
- package/dist/module/user/repository/user-role-mapping.repository.d.ts +1 -0
- package/dist/module/user/repository/user-role-mapping.repository.js +3 -0
- package/dist/module/user/repository/user-role-mapping.repository.js.map +1 -1
- package/dist/module/user/repository/user.repository.d.ts +5 -2
- package/dist/module/user/repository/user.repository.js +26 -7
- package/dist/module/user/repository/user.repository.js.map +1 -1
- package/dist/module/user/repository/userSession.repository.d.ts +1 -0
- package/dist/module/user/repository/userSession.repository.js +3 -0
- package/dist/module/user/repository/userSession.repository.js.map +1 -1
- package/dist/module/user/service/login.service.d.ts +3 -5
- package/dist/module/user/service/login.service.js +43 -42
- package/dist/module/user/service/login.service.js.map +1 -1
- package/dist/module/user/service/role.service.d.ts +24 -11
- package/dist/module/user/service/role.service.js +54 -40
- package/dist/module/user/service/role.service.js.map +1 -1
- package/dist/module/user/service/user-role-mapping.service.d.ts +2 -0
- package/dist/module/user/service/user-role-mapping.service.js +6 -0
- package/dist/module/user/service/user-role-mapping.service.js.map +1 -1
- package/dist/module/user/service/user-session.service.d.ts +3 -4
- package/dist/module/user/service/user-session.service.js +10 -11
- package/dist/module/user/service/user-session.service.js.map +1 -1
- package/dist/module/user/service/user.service.d.ts +33 -22
- package/dist/module/user/service/user.service.js +66 -58
- package/dist/module/user/service/user.service.js.map +1 -1
- package/dist/module/user/user.module.js +2 -7
- package/dist/module/user/user.module.js.map +1 -1
- package/dist/module/workflow/repository/action-data.repository.d.ts +1 -1
- package/dist/module/workflow/repository/action-data.repository.js +6 -8
- package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
- package/dist/module/workflow/repository/action.repository.d.ts +1 -1
- package/dist/module/workflow/repository/action.repository.js +10 -10
- package/dist/module/workflow/repository/action.repository.js.map +1 -1
- package/dist/module/workflow/repository/form-master.repository.d.ts +1 -1
- package/dist/module/workflow/repository/form-master.repository.js +2 -2
- package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
- package/dist/module/workflow/service/action-data.service.js +1 -2
- package/dist/module/workflow/service/action-data.service.js.map +1 -1
- package/dist/module/workflow/service/action.service.js +2 -2
- package/dist/module/workflow/service/action.service.js.map +1 -1
- package/dist/module/workflow/service/comm-template.service.js +0 -2
- package/dist/module/workflow/service/comm-template.service.js.map +1 -1
- package/dist/module/workflow/service/entity-modification.service.js +0 -1
- package/dist/module/workflow/service/entity-modification.service.js.map +1 -1
- package/dist/module/workflow/service/form-master.service.js +2 -2
- package/dist/module/workflow/service/form-master.service.js.map +1 -1
- package/dist/module/workflow/service/populate-workflow.service.d.ts +1 -1
- package/dist/module/workflow/service/populate-workflow.service.js +1 -1
- package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
- package/dist/module/workflow/service/task.service.js +0 -3
- package/dist/module/workflow/service/task.service.js.map +1 -1
- package/dist/module/workflow/service/workflow-meta.service.js +2 -7
- package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
- package/dist/module/workflow/service/workflow.service.js +2 -2
- package/dist/module/workflow/service/workflow.service.js.map +1 -1
- package/dist/module/workflow/workflow.module.js +2 -0
- package/dist/module/workflow/workflow.module.js.map +1 -1
- package/dist/module/workflow-automation/service/workflow-automation.service.js +11 -6
- package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
- package/dist/module/workflow-automation/workflow-automation.module.js +3 -1
- package/dist/module/workflow-automation/workflow-automation.module.js.map +1 -1
- package/dist/module/workflow-schedule/service/workflow-schedule.service.js +0 -2
- package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -1
- package/dist/table.config.d.ts +3 -5
- package/dist/table.config.js +3 -3
- package/dist/table.config.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/server.log +850 -0
- package/src/app.module.ts +7 -5
- package/src/constant/status.constant.ts +4 -0
- package/src/core.module.ts +58 -44
- package/src/module/app_master/app-master.module.ts +15 -0
- package/src/module/{meta → app_master}/entity/app-master.entity.ts +22 -9
- package/src/module/{meta → app_master}/repository/app-master.repository.ts +3 -3
- package/src/module/auth/strategies/jwt.strategy.ts +4 -2
- package/src/module/dashboard/dashboard.module.ts +3 -3
- package/src/module/dashboard/service/dashboard.service.ts +1 -2
- package/src/module/enterprise/controller/enterprise.controller.ts +40 -0
- package/src/module/enterprise/controller/meta.controller.ts +23 -0
- package/src/module/enterprise/controller/organization.controller.ts +60 -4
- package/src/module/enterprise/enterprise.module.ts +16 -18
- package/src/module/enterprise/entity/enterprise.entity.ts +5 -11
- package/src/module/enterprise/entity/organization-app-mapping.entity.ts +18 -4
- package/src/module/enterprise/entity/organization.entity.ts +9 -59
- package/src/module/enterprise/repository/enterprise.repository.ts +26 -4
- package/src/module/enterprise/service/brand-profile.service.ts +10 -0
- package/src/module/enterprise/service/brand.service.ts +75 -5
- package/src/module/enterprise/service/enterprise.service.ts +10 -4
- package/src/module/enterprise/service/organization.service.ts +140 -23
- package/src/module/{meta → enterprise}/service/populate-meta.service.ts +2 -5
- package/src/module/enterprise/service/school.service.ts +5 -0
- package/src/module/entity_json/controller/entity_json.controller.ts +0 -13
- package/src/module/entity_json/entity/entityJson.entity.ts +1 -4
- package/src/module/entity_json/entity_json.module.ts +5 -9
- package/src/module/entity_json/service/entity_json.service.ts +51 -237
- package/src/module/filter/controller/filter.controller.ts +3 -1
- package/src/module/filter/filter.module.ts +3 -12
- package/src/module/filter/service/filter.service.ts +73 -130
- package/src/module/filter/service/saved-filter.service.ts +26 -16
- package/src/module/integration/service/integration.service.ts +2 -6
- package/src/module/integration/service/wrapper.service.ts +0 -1
- package/src/module/layout/controller/layout.controller.ts +1 -8
- package/src/module/layout/entity/header-section.entity.ts +0 -6
- package/src/module/layout/layout.module.ts +1 -1
- package/src/module/layout/repository/header-section.repository.ts +0 -6
- package/src/module/layout/service/header-section.service.ts +1 -1
- package/src/module/linked_attributes/controller/linked_attributes.controller.ts +0 -100
- package/src/module/linked_attributes/linked_attributes.module.ts +2 -9
- package/src/module/linked_attributes/service/linked_attributes.service.ts +3 -578
- package/src/module/listmaster/service/list-master.service.ts +1 -9
- package/src/module/meta/controller/meta.controller.ts +3 -25
- package/src/module/meta/entity/entity-master.entity.ts +3 -9
- package/src/module/meta/entity.module.ts +6 -20
- package/src/module/meta/service/attribute-master.service.ts +1 -31
- package/src/module/meta/service/entity-master.service.ts +0 -1
- package/src/module/meta/service/entity-relation.service.ts +6 -10
- package/src/module/meta/service/entity-service-impl.service.ts +19 -14
- package/src/module/meta/service/entity-table.service.ts +68 -82
- package/src/module/meta/service/entity.service.ts +1 -0
- package/src/module/meta/service/resolver.service.ts +0 -4
- package/src/module/module/controller/module-access.controller.ts +14 -9
- package/src/module/module/entity/menu.entity.ts +18 -10
- package/src/module/module/entity/module-access.entity.ts +40 -3
- package/src/module/module/entity/module-action.entity.ts +10 -6
- package/src/module/module/entity/module.entity.ts +7 -14
- package/src/module/module/module.module.ts +2 -3
- package/src/module/module/repository/menu.repository.ts +43 -29
- package/src/module/module/repository/module-access.repository.ts +111 -63
- package/src/module/module/service/menu.service.ts +7 -9
- package/src/module/module/service/module-access.service.ts +22 -34
- package/src/module/notification/entity/notification.entity.ts +53 -3
- package/src/module/notification/notification.module.ts +0 -2
- package/src/module/notification/service/notification.service.ts +0 -1
- package/src/module/notification/service/otp.service.ts +4 -3
- package/src/module/user/controller/login.controller.ts +7 -8
- package/src/module/user/controller/user.controller.ts +0 -9
- package/src/module/user/dto/create-user.dto.ts +19 -6
- package/src/module/user/entity/role.entity.ts +59 -16
- package/src/module/user/entity/user-role-mapping.entity.ts +29 -3
- package/src/module/user/entity/user-session.entity.ts +3 -19
- package/src/module/user/entity/user.entity.ts +48 -13
- package/src/module/user/repository/role.repository.ts +32 -12
- package/src/module/user/repository/user-role-mapping.repository.ts +5 -1
- package/src/module/user/repository/user.repository.ts +36 -9
- package/src/module/user/repository/userSession.repository.ts +5 -1
- package/src/module/user/service/login.service.ts +47 -51
- package/src/module/user/service/role.service.ts +64 -63
- package/src/module/user/service/user-role-mapping.service.ts +23 -1
- package/src/module/user/service/user-session.service.ts +14 -11
- package/src/module/user/service/user.service.ts +76 -95
- package/src/module/user/user.module.ts +4 -5
- package/src/module/workflow/repository/action-data.repository.ts +6 -8
- package/src/module/workflow/repository/action.repository.ts +11 -11
- package/src/module/workflow/repository/form-master.repository.ts +2 -2
- package/src/module/workflow/service/action-data.service.ts +3 -2
- package/src/module/workflow/service/action.service.ts +2 -2
- package/src/module/workflow/service/comm-template.service.ts +0 -2
- package/src/module/workflow/service/entity-modification.service.ts +0 -1
- package/src/module/workflow/service/form-master.service.ts +2 -2
- package/src/module/workflow/service/populate-workflow.service.ts +1 -1
- package/src/module/workflow/service/task.service.ts +0 -3
- package/src/module/workflow/service/workflow-meta.service.ts +2 -7
- package/src/module/workflow/service/workflow.service.ts +2 -2
- package/src/module/workflow/workflow.module.ts +2 -0
- package/src/module/workflow-automation/service/workflow-automation.service.ts +19 -7
- package/src/module/workflow-automation/workflow-automation.module.ts +4 -3
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +0 -2
- package/src/resources/dev.properties.yaml +2 -2
- package/src/table.config.ts +3 -3
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +0 -6
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +0 -32
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +0 -1
- package/dist/module/filter/service/flatjson-filter.service.d.ts +0 -32
- package/dist/module/filter/service/flatjson-filter.service.js +0 -632
- package/dist/module/filter/service/flatjson-filter.service.js.map +0 -1
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.d.ts +0 -13
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js +0 -64
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js.map +0 -1
- package/dist/module/meta/controller/app-master.controller.js.map +0 -1
- package/dist/module/meta/entity/app-master.entity.d.ts +0 -13
- package/dist/module/meta/entity/app-master.entity.js.map +0 -1
- package/dist/module/meta/repository/app-master.repository.js.map +0 -1
- package/dist/module/meta/service/app-master.service.js.map +0 -1
- package/dist/module/meta/service/populate-meta.service.d.ts +0 -13
- package/dist/module/meta/service/populate-meta.service.js.map +0 -1
- package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +0 -41
- package/src/module/entity_json/docs/FlatJson_Filterin_System.md +0 -2804
- package/src/module/filter/service/flatjson-filter.service.ts +0 -903
- package/src/module/filter/test/flatjson-filter.service.spec.ts +0 -415
- package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +0 -54
- package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +0 -244
- /package/dist/module/{meta → app_master}/controller/app-master.controller.d.ts +0 -0
- /package/dist/module/{meta → app_master}/controller/app-master.controller.js +0 -0
- /package/dist/module/{meta → app_master}/service/app-master.service.d.ts +0 -0
- /package/dist/module/{meta → app_master}/service/app-master.service.js +0 -0
- /package/src/module/{meta → app_master}/controller/app-master.controller.ts +0 -0
- /package/src/module/{meta → app_master}/service/app-master.service.ts +0 -0
|
@@ -1,69 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EntityServiceImpl } from '../../meta/service/entity-service-impl.service';
|
|
3
|
-
import { BaseEntity } from '../../meta/entity/base-entity.entity';
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
4
2
|
import { UserData } from '../entity/user.entity';
|
|
5
3
|
import { Role } from '../entity/role.entity';
|
|
6
|
-
import {
|
|
4
|
+
import { STATUS_INACTIVE } from 'src/constant/global.constant';
|
|
7
5
|
import { RoleRepository } from '../repository/role.repository';
|
|
8
|
-
import {
|
|
6
|
+
import { Repository } from 'typeorm';
|
|
9
7
|
import { InjectRepository } from '@nestjs/typeorm';
|
|
10
8
|
import { ModuleAccess } from '../../module/entity/module-access.entity';
|
|
11
|
-
import { ServiceResult } from 'src/dtos/response';
|
|
12
|
-
import { ListMasterService } from 'src/module/listmaster/service/list-master.service';
|
|
13
|
-
import { UserRoleMappingRepository } from '../repository/user-role-mapping.repository';
|
|
14
9
|
import { UserRoleMapping } from '../entity/user-role-mapping.entity';
|
|
10
|
+
import { plainToInstance } from 'class-transformer';
|
|
11
|
+
import { StatusConstant } from '../../../constant/status.constant';
|
|
15
12
|
|
|
16
13
|
@Injectable()
|
|
17
|
-
export class RoleService
|
|
14
|
+
export class RoleService {
|
|
18
15
|
constructor(
|
|
19
16
|
private readonly roleRepository: RoleRepository,
|
|
20
|
-
private readonly entityManager: EntityManager,
|
|
21
17
|
@InjectRepository(ModuleAccess)
|
|
22
18
|
private readonly moduleAccessRepo: Repository<ModuleAccess>,
|
|
23
|
-
@Inject('ListMasterService')
|
|
24
|
-
private readonly listMasterService: ListMasterService,
|
|
25
19
|
@InjectRepository(UserRoleMapping)
|
|
26
20
|
private readonly userRoleMappingRepo: Repository<UserRoleMapping>,
|
|
27
21
|
) {
|
|
28
|
-
super();
|
|
29
22
|
}
|
|
30
23
|
|
|
31
|
-
async
|
|
32
|
-
|
|
33
|
-
loggedInUser:
|
|
34
|
-
)
|
|
35
|
-
const role = entityData as Role;
|
|
24
|
+
async createRole(
|
|
25
|
+
role: Role,
|
|
26
|
+
loggedInUser: any,
|
|
27
|
+
) {
|
|
36
28
|
|
|
37
29
|
// if level_type and level_id are not provided, use loggedInUser's values
|
|
38
|
-
role.level_type =
|
|
39
|
-
role.level_id =
|
|
40
|
-
role.
|
|
30
|
+
role.level_type = role.level_type || loggedInUser.level_type;
|
|
31
|
+
role.level_id = role.level_id || loggedInUser.level_id;
|
|
32
|
+
role.created_by = loggedInUser.id;
|
|
33
|
+
role.enterprise_id = loggedInUser.enterprise_id;
|
|
34
|
+
role.app_id = role.app_id || loggedInUser.app_id;
|
|
41
35
|
|
|
42
36
|
if (
|
|
43
37
|
await this.roleRepository.isRoleNameWithLevelExists(role.name, {
|
|
44
|
-
|
|
45
|
-
level_type:
|
|
38
|
+
enterprise_id: loggedInUser.enterprise_id,
|
|
39
|
+
level_type: role.level_type || loggedInUser?.level_type,
|
|
46
40
|
level_id:
|
|
47
|
-
parseInt(
|
|
41
|
+
parseInt(role.level_id) ||
|
|
48
42
|
parseInt(loggedInUser?.level_id || '', 10),
|
|
49
43
|
})
|
|
50
44
|
) {
|
|
51
45
|
return { success: false, error: 'Role name already exists.' };
|
|
52
46
|
}
|
|
53
47
|
|
|
48
|
+
if(!role.code) {
|
|
49
|
+
const maxId = await this.roleRepository.findMaxIdRecord();
|
|
50
|
+
if(maxId && maxId.id) {
|
|
51
|
+
role.code = `ROL${maxId.id + 1}`;
|
|
52
|
+
} else {
|
|
53
|
+
role.code = `ROL1`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
54
57
|
const sourceRole = role.copy_from_role_id
|
|
55
|
-
? await this.
|
|
56
|
-
ENTITYTYPE_ROLE,
|
|
57
|
-
role.copy_from_role_id,
|
|
58
|
-
loggedInUser,
|
|
59
|
-
)
|
|
58
|
+
? await this.roleRepository.findById(role.copy_from_role_id)
|
|
60
59
|
: null;
|
|
61
60
|
|
|
62
61
|
if (role.copy_from_role_id && !sourceRole) {
|
|
63
62
|
return { success: false, error: 'Source role not found.' };
|
|
64
63
|
}
|
|
65
|
-
|
|
66
|
-
const savedRole = await
|
|
64
|
+
role.status = StatusConstant.ACTIVE;
|
|
65
|
+
const savedRole = await this.roleRepository.saveRole(role);
|
|
67
66
|
if (sourceRole) {
|
|
68
67
|
const sourcePermissions = await this.moduleAccessRepo.find({
|
|
69
68
|
where: { role_code: sourceRole.code },
|
|
@@ -72,11 +71,11 @@ export class RoleService extends EntityServiceImpl {
|
|
|
72
71
|
const clonedPermissions = sourcePermissions.map((perm) =>
|
|
73
72
|
this.moduleAccessRepo.create({
|
|
74
73
|
role_code: savedRole.code,
|
|
75
|
-
module_code: perm.module_code,
|
|
76
74
|
action_type: perm.action_type,
|
|
77
75
|
access_flag: perm.access_flag,
|
|
78
76
|
level_type: perm.level_type,
|
|
79
77
|
appcode: perm.appcode,
|
|
78
|
+
module_id: perm.module_id
|
|
80
79
|
}),
|
|
81
80
|
);
|
|
82
81
|
|
|
@@ -85,40 +84,31 @@ export class RoleService extends EntityServiceImpl {
|
|
|
85
84
|
return { success: true, data: savedRole };
|
|
86
85
|
}
|
|
87
86
|
|
|
88
|
-
async
|
|
89
|
-
|
|
87
|
+
async updateRole(
|
|
88
|
+
id: number,
|
|
89
|
+
role: Role,
|
|
90
90
|
loggedInUser: UserData,
|
|
91
|
-
)
|
|
92
|
-
if (!
|
|
91
|
+
) {
|
|
92
|
+
if (!role.name) {
|
|
93
93
|
return { success: false, error: 'Role name is required' };
|
|
94
94
|
}
|
|
95
|
-
const role = entityData as Role;
|
|
96
95
|
|
|
97
|
-
|
|
98
|
-
STATUS_INACTIVE,
|
|
99
|
-
loggedInUser?.organization_id || 0,
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
if (entityData.status == resolveStatus.id) {
|
|
96
|
+
if (role.status == STATUS_INACTIVE) {
|
|
103
97
|
//get role by id
|
|
104
|
-
const existingRole = await this.
|
|
105
|
-
ENTITYTYPE_ROLE,
|
|
106
|
-
entityData.id,
|
|
107
|
-
loggedInUser,
|
|
108
|
-
);
|
|
98
|
+
const existingRole = await this.roleRepository.findById(id);
|
|
109
99
|
|
|
110
100
|
if (!existingRole) {
|
|
111
101
|
return { success: false, error: 'Role not found' };
|
|
112
102
|
}
|
|
113
103
|
|
|
114
104
|
const associatedUsers = await this.userRoleMappingRepo
|
|
115
|
-
.createQueryBuilder(
|
|
116
|
-
.innerJoin(
|
|
117
|
-
.where(
|
|
118
|
-
.andWhere(
|
|
105
|
+
.createQueryBuilder('map')
|
|
106
|
+
.innerJoin('sso_user', 'usr', 'map.user_id = usr.id')
|
|
107
|
+
.where('usr.status::text = :status', { status: StatusConstant.INACTIVE })
|
|
108
|
+
.andWhere('map.role_id::text = :roleId', {
|
|
119
109
|
roleId: String(existingRole?.id),
|
|
120
110
|
})
|
|
121
|
-
.select(
|
|
111
|
+
.select('map') // same as SELECT map.*
|
|
122
112
|
.getRawMany();
|
|
123
113
|
|
|
124
114
|
if (associatedUsers.length > 0) {
|
|
@@ -137,9 +127,9 @@ export class RoleService extends EntityServiceImpl {
|
|
|
137
127
|
}
|
|
138
128
|
|
|
139
129
|
if (
|
|
140
|
-
await this.roleRepository.isRoleNameExists(
|
|
141
|
-
excludeRoleId:
|
|
142
|
-
|
|
130
|
+
await this.roleRepository.isRoleNameExists(role.name, {
|
|
131
|
+
excludeRoleId: role.id,
|
|
132
|
+
enterprise_id: loggedInUser?.enterprise_id,
|
|
143
133
|
})
|
|
144
134
|
) {
|
|
145
135
|
return {
|
|
@@ -149,14 +139,13 @@ export class RoleService extends EntityServiceImpl {
|
|
|
149
139
|
}
|
|
150
140
|
|
|
151
141
|
const { copy_from_role_id, ...persistableData } = role;
|
|
152
|
-
|
|
142
|
+
|
|
143
|
+
const entity = plainToInstance(Role, persistableData);
|
|
144
|
+
const updatedRole = await this.roleRepository.updateRole(id, entity);
|
|
153
145
|
|
|
154
146
|
if (role.copy_from_role_id) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
role.copy_from_role_id,
|
|
158
|
-
loggedInUser,
|
|
159
|
-
);
|
|
147
|
+
|
|
148
|
+
const sourceRole = await this.roleRepository.findById(role.copy_from_role_id);
|
|
160
149
|
|
|
161
150
|
if (!sourceRole) {
|
|
162
151
|
return {
|
|
@@ -174,7 +163,7 @@ export class RoleService extends EntityServiceImpl {
|
|
|
174
163
|
const clonedPermissions = sourcePermissions.map((perm) =>
|
|
175
164
|
this.moduleAccessRepo.create({
|
|
176
165
|
role_code: role.code,
|
|
177
|
-
|
|
166
|
+
module_id: perm.module_id,
|
|
178
167
|
action_type: perm.action_type,
|
|
179
168
|
access_flag: perm.access_flag,
|
|
180
169
|
appcode: perm.appcode,
|
|
@@ -194,4 +183,16 @@ export class RoleService extends EntityServiceImpl {
|
|
|
194
183
|
}): Promise<Role[] | null> {
|
|
195
184
|
return await this.roleRepository.find(data);
|
|
196
185
|
}
|
|
186
|
+
|
|
187
|
+
async findByCode(code: string) {
|
|
188
|
+
return await this.roleRepository.findByCode(code);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
async findById(id: number) {
|
|
192
|
+
return await this.roleRepository.findById(id);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
async find(options: any): Promise<Role[]> {
|
|
196
|
+
return await this.roleRepository.findRoles(options);
|
|
197
|
+
}
|
|
197
198
|
}
|
|
@@ -7,7 +7,7 @@ import { UserRoleMapping } from '../entity/user-role-mapping.entity';
|
|
|
7
7
|
export class UserRoleMappingService {
|
|
8
8
|
constructor(
|
|
9
9
|
private readonly userRoleMappingRepository: UserRoleMappingRepository,
|
|
10
|
-
) {}
|
|
10
|
+
) { }
|
|
11
11
|
|
|
12
12
|
async assignUserRole(userRoleMapping: UserRoleMapping) {
|
|
13
13
|
const existing = await this.userRoleMappingRepository.findByUserIdAndRoleId(
|
|
@@ -95,4 +95,26 @@ export class UserRoleMappingService {
|
|
|
95
95
|
levelId,
|
|
96
96
|
);
|
|
97
97
|
}
|
|
98
|
+
|
|
99
|
+
async find(options: any): Promise<UserRoleMapping[]> {
|
|
100
|
+
return await this.userRoleMappingRepository.find(options);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async create(data: any, loggedInUser: any) {
|
|
104
|
+
// Assuming data maps to UserRoleMapping or needs transformation
|
|
105
|
+
// Based on usage in controller: this.roleMappingService.createEntity(data.userRoleMappingData, data.loggedInUserData)
|
|
106
|
+
|
|
107
|
+
// If data is already a UserRoleMapping object or similar
|
|
108
|
+
// We might need to adjust this based on actual DTO structure, but for now passing it through or saving
|
|
109
|
+
|
|
110
|
+
// If it's a direct save:
|
|
111
|
+
// return await this.userRoleMappingRepository.save(data);
|
|
112
|
+
|
|
113
|
+
// However, assignUserRole seems to be the main method for creating/assigning.
|
|
114
|
+
// Let's use assignUserRole if data matches, or save if it's a raw entity.
|
|
115
|
+
// The controller passes `data.userRoleMappingData`.
|
|
116
|
+
|
|
117
|
+
// Let's assume it's a UserRoleMapping compatible object.
|
|
118
|
+
return await this.assignUserRole(data);
|
|
119
|
+
}
|
|
98
120
|
}
|
|
@@ -4,8 +4,7 @@ import { BadRequestException, Injectable } from '@nestjs/common';
|
|
|
4
4
|
import { UserSessionRepository } from '../repository/userSession.repository';
|
|
5
5
|
import { JwtAuthService } from 'src/module/auth/services/jwt.service';
|
|
6
6
|
import { ConfigService } from '@nestjs/config';
|
|
7
|
-
import {
|
|
8
|
-
import { DataSource, Repository } from 'typeorm';
|
|
7
|
+
import { Repository } from 'typeorm';
|
|
9
8
|
import { UserRoleMapping } from '../entity/user-role-mapping.entity';
|
|
10
9
|
import { UserData } from '../entity/user.entity';
|
|
11
10
|
import { InjectRepository } from '@nestjs/typeorm';
|
|
@@ -20,18 +19,18 @@ export class UserSessionService {
|
|
|
20
19
|
private configService: ConfigService,
|
|
21
20
|
@InjectRepository(UserData)
|
|
22
21
|
private readonly userDataRepository: Repository<UserData>,
|
|
23
|
-
@InjectRepository(UserRoleMapping)
|
|
24
|
-
private readonly userRoleMappingRepository: Repository<UserRoleMapping>,
|
|
25
22
|
private readonly reflectionHelper: ReflectionHelper,
|
|
26
|
-
) {
|
|
27
|
-
|
|
23
|
+
) {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
async createSession(user, app_id?: number, accessInfo?: any, appcode?: string) {
|
|
28
27
|
const sessionToken = this.clockIDGenService.idGenerator('SES');
|
|
29
28
|
|
|
30
29
|
const userSession: any = new UserSession();
|
|
31
30
|
userSession.user_id = user.id;
|
|
32
31
|
userSession.session_key = sessionToken;
|
|
33
32
|
userSession.is_session_loggedout = 0;
|
|
34
|
-
userSession.login_time = new Date();
|
|
33
|
+
// userSession.login_time = new Date(); -- Changed login_time to be auto generated by typeorm
|
|
35
34
|
|
|
36
35
|
const expiryTokenInHours = this.configService.get('TOKEN_EXPIRY') || 1;
|
|
37
36
|
userSession.expiry_date = new Date(
|
|
@@ -43,10 +42,11 @@ export class UserSessionService {
|
|
|
43
42
|
const payload: any = {
|
|
44
43
|
id: user.id,
|
|
45
44
|
sessionToken,
|
|
46
|
-
|
|
45
|
+
app_id,
|
|
47
46
|
email_id: user.email_id,
|
|
48
47
|
organization_id: user.organization_id,
|
|
49
48
|
enterprise_id: user.enterprise_id,
|
|
49
|
+
appcode,
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
// ✅ Add role access details
|
|
@@ -57,7 +57,6 @@ export class UserSessionService {
|
|
|
57
57
|
|
|
58
58
|
const accessToken = this.jwtAuthService.generateJwt(payload);
|
|
59
59
|
|
|
60
|
-
userSession.access_token = accessToken;
|
|
61
60
|
await this.userSessionRepository.saveSession(userSession);
|
|
62
61
|
|
|
63
62
|
return accessToken;
|
|
@@ -71,6 +70,10 @@ export class UserSessionService {
|
|
|
71
70
|
await this.userSessionRepository.saveSession(userSession);
|
|
72
71
|
}
|
|
73
72
|
|
|
73
|
+
async fetchUserFcmToken(user_id: number) {
|
|
74
|
+
return await this.userSessionRepository.fetchUserFcmToken(user_id);
|
|
75
|
+
};
|
|
76
|
+
|
|
74
77
|
|
|
75
78
|
async switchCurrentLevelService(
|
|
76
79
|
currentUser: any,
|
|
@@ -103,12 +106,12 @@ export class UserSessionService {
|
|
|
103
106
|
});
|
|
104
107
|
}
|
|
105
108
|
|
|
106
|
-
if (getUserDetails?.
|
|
109
|
+
if (getUserDetails?.enterprise_id == 1 && payload.level_type == 'ORG') {
|
|
107
110
|
payload.organization_id = payload.level_id;
|
|
108
111
|
}
|
|
109
112
|
|
|
110
113
|
await this.userDataRepository.update(currentUser.id, {
|
|
111
|
-
|
|
114
|
+
last_app_access_id: data.app_id,
|
|
112
115
|
last_level_type: data.level_type,
|
|
113
116
|
last_level_id: data.level_id,
|
|
114
117
|
});
|
|
@@ -1,65 +1,45 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
BadRequestException,
|
|
4
|
-
ForbiddenException,
|
|
5
|
-
Inject,
|
|
6
|
-
Injectable,
|
|
7
|
-
} from '@nestjs/common';
|
|
8
|
-
import { EntityServiceImpl } from '../../meta/service/entity-service-impl.service';
|
|
1
|
+
import { BadRequestException, Injectable } from '@nestjs/common';
|
|
9
2
|
import { UserData } from '../entity/user.entity';
|
|
10
|
-
import { BaseEntity } from '../../meta/entity/base-entity.entity';
|
|
11
3
|
import { UserRepository } from '../repository/user.repository';
|
|
12
|
-
import {
|
|
13
|
-
import { ClockIDGenService } from '../../../utils/service/clockIDGenUtil.service';
|
|
14
|
-
import {
|
|
15
|
-
ENTITYTYPE_ROLE,
|
|
16
|
-
STATUS_ACTIVE,
|
|
17
|
-
INVITATION_STATUS_SENT,
|
|
18
|
-
} from '../../../constant/global.constant';
|
|
4
|
+
import { INVITATION_STATUS_SENT } from '../../../constant/global.constant';
|
|
19
5
|
import { CreateUserDto } from '../dto/create-user.dto';
|
|
20
6
|
import { UserRoleMappingService } from './user-role-mapping.service';
|
|
21
7
|
import { UserRoleMapping } from '../entity/user-role-mapping.entity';
|
|
22
|
-
import { EntityManager, Repository } from 'typeorm';
|
|
23
|
-
import { UpdateUserDto } from '../dto/update-user.dto';
|
|
24
8
|
import { ConfigService } from '@nestjs/config';
|
|
25
|
-
// import { UserAppMappingService } from 'src/module/meta/service/user-app-mapping.service';
|
|
26
|
-
import { ServiceResult } from 'src/dtos/response.dto';
|
|
27
|
-
import { ListMasterService } from 'src/module/listmaster/service/list-master.service';
|
|
28
|
-
import { OrganizationRepository } from 'src/module/enterprise/repository/organization.repository';
|
|
29
|
-
import { InjectRepository } from '@nestjs/typeorm';
|
|
30
|
-
import { Action } from 'src/module/workflow-automation/interface/action.interface';
|
|
31
9
|
import { ActionHandler } from 'src/module/workflow-automation/interface/action.decorator';
|
|
10
|
+
import { EncryptUtilService } from '../../../utils/service/encryptUtil.service';
|
|
11
|
+
import { plainToInstance } from 'class-transformer';
|
|
12
|
+
import { UpdateUserDto } from '../dto/update-user.dto';
|
|
13
|
+
import { EnterpriseRepository } from 'src/module/enterprise/repository/enterprise.repository';
|
|
14
|
+
import { StatusConstant } from '../../../constant/status.constant';
|
|
15
|
+
import { RoleRepository } from '../repository/role.repository';
|
|
16
|
+
import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
|
|
32
17
|
|
|
33
18
|
@Injectable()
|
|
34
19
|
@ActionHandler('User')
|
|
35
|
-
export class UserService
|
|
20
|
+
export class UserService {
|
|
36
21
|
constructor(
|
|
37
22
|
private userRepository: UserRepository,
|
|
38
23
|
private userRoleMappingService: UserRoleMappingService,
|
|
39
|
-
private
|
|
24
|
+
private roleRepo: RoleRepository,
|
|
40
25
|
private configService: ConfigService,
|
|
41
|
-
private readonly
|
|
42
|
-
|
|
43
|
-
@Inject('RoleService') private readonly roleService: RoleService,
|
|
44
|
-
@Inject('ListMasterService')
|
|
45
|
-
private readonly listMasterService: ListMasterService,
|
|
26
|
+
private readonly enterpriseRepository: EnterpriseRepository,
|
|
27
|
+
private readonly reflectionHelper: ReflectionHelper
|
|
46
28
|
) {
|
|
47
|
-
super();
|
|
48
29
|
}
|
|
49
30
|
|
|
50
31
|
masterKey = this.configService.get('MASTER_KEY') || '';
|
|
51
32
|
masterIv = this.configService.get('MASTER_IV') || '';
|
|
52
33
|
|
|
53
|
-
async
|
|
54
|
-
entityData:
|
|
55
|
-
loggedInUser: UserData
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const userData = entityData as CreateUserDto;
|
|
34
|
+
async createUser(
|
|
35
|
+
entityData: CreateUserDto,
|
|
36
|
+
loggedInUser: UserData,
|
|
37
|
+
) {
|
|
38
|
+
const userData = entityData;
|
|
59
39
|
|
|
60
40
|
let existingUser = await this.userRepository.findByEmailId(
|
|
61
41
|
userData.email_id,
|
|
62
|
-
loggedInUser?.
|
|
42
|
+
loggedInUser?.enterprise_id,
|
|
63
43
|
);
|
|
64
44
|
if (existingUser) {
|
|
65
45
|
return { success: false, error: 'User with this email already exists' };
|
|
@@ -67,43 +47,46 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
67
47
|
|
|
68
48
|
existingUser = await this.userRepository.findByMobile(
|
|
69
49
|
userData.mobile,
|
|
70
|
-
loggedInUser?.
|
|
50
|
+
loggedInUser?.enterprise_id,
|
|
71
51
|
);
|
|
72
52
|
if (existingUser) {
|
|
73
53
|
return { success: false, error: 'User with this mobile already exists' };
|
|
74
54
|
}
|
|
75
55
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
loggedInUser?.organization_id || 0,
|
|
85
|
-
);
|
|
56
|
+
if(!userData.code) {
|
|
57
|
+
const maxId = await this.userRepository.findMaxIdRecord();
|
|
58
|
+
if(maxId && maxId.id) {
|
|
59
|
+
userData.code = `USR${maxId.id + 1}`;
|
|
60
|
+
} else {
|
|
61
|
+
userData.code = `USR1`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
86
64
|
|
|
87
|
-
userData.name =
|
|
88
|
-
(userData.first_name || '') + ' ' + (userData.last_name || '');
|
|
89
65
|
userData.password = EncryptUtilService.encryptGCM(
|
|
90
66
|
userData.password || 'Admin@123',
|
|
91
67
|
this.masterKey,
|
|
92
68
|
this.masterIv,
|
|
93
69
|
);
|
|
70
|
+
|
|
71
|
+
userData.enterprise_id = loggedInUser.enterprise_id;
|
|
72
|
+
userData.level_type = loggedInUser.level_type;
|
|
73
|
+
userData.level_id = loggedInUser.level_id;
|
|
74
|
+
|
|
94
75
|
userData.is_firstlogin = 1;
|
|
95
76
|
userData.roles = [];
|
|
96
|
-
userData.invitation_status =
|
|
97
|
-
userData.status =
|
|
77
|
+
userData.invitation_status = INVITATION_STATUS_SENT;
|
|
78
|
+
userData.status = StatusConstant.ACTIVE;
|
|
98
79
|
|
|
99
|
-
const
|
|
80
|
+
const entity = plainToInstance(UserData, userData);
|
|
81
|
+
entity.created_by = loggedInUser.created_by;
|
|
82
|
+
|
|
83
|
+
const savedData = await this.userRepository.saveUser(entity);
|
|
100
84
|
|
|
101
85
|
const insertPromises: Promise<UserRoleMapping | void | null | undefined>[] =
|
|
102
86
|
[];
|
|
103
87
|
|
|
104
88
|
for (const entry of userData.access || []) {
|
|
105
89
|
const { level_type, level_ids, app_code, role_id } = entry;
|
|
106
|
-
|
|
107
90
|
if (
|
|
108
91
|
!level_type ||
|
|
109
92
|
!Array.isArray(level_ids) ||
|
|
@@ -113,13 +96,19 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
113
96
|
) {
|
|
114
97
|
return { success: false, error: 'Invalid access level entry' };
|
|
115
98
|
}
|
|
116
|
-
|
|
99
|
+
const appMasterRepo = this.reflectionHelper.getRepoService('AppMaster');
|
|
100
|
+
const appMaster = await appMasterRepo.findOne({
|
|
101
|
+
where: {
|
|
102
|
+
code: app_code
|
|
103
|
+
}
|
|
104
|
+
})
|
|
117
105
|
for (const levelId of level_ids) {
|
|
118
106
|
const userRoleMapping = new UserRoleMapping(savedData.id, role_id);
|
|
119
107
|
userRoleMapping.level_type = level_type;
|
|
120
108
|
userRoleMapping.level_id = String(levelId);
|
|
121
109
|
userRoleMapping.appcode = app_code;
|
|
122
|
-
userRoleMapping.
|
|
110
|
+
userRoleMapping.app_id = appMaster.id
|
|
111
|
+
userRoleMapping.enterprise_id = loggedInUser?.enterprise_id || 0;
|
|
123
112
|
insertPromises.push(
|
|
124
113
|
this.userRoleMappingService.assignUserRole(userRoleMapping),
|
|
125
114
|
);
|
|
@@ -139,15 +128,10 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
139
128
|
}
|
|
140
129
|
|
|
141
130
|
name: string = 'UserService';
|
|
142
|
-
async execute(payload: any): Promise<any> {
|
|
143
|
-
console.log('payload', payload);
|
|
144
|
-
}
|
|
145
131
|
|
|
146
|
-
async
|
|
147
|
-
entityType: string,
|
|
132
|
+
async getUserData(
|
|
148
133
|
id: number,
|
|
149
|
-
|
|
150
|
-
): Promise<BaseEntity | null> {
|
|
134
|
+
) {
|
|
151
135
|
const user = await this.userRepository.findById(id);
|
|
152
136
|
if (user) {
|
|
153
137
|
const userRoleMappings: UserRoleMapping[] | null =
|
|
@@ -158,11 +142,7 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
158
142
|
for (const i in userRoleMappings) {
|
|
159
143
|
const userRoleMapping = userRoleMappings[i];
|
|
160
144
|
const roleId = userRoleMapping.role_id;
|
|
161
|
-
const role = await
|
|
162
|
-
ENTITYTYPE_ROLE,
|
|
163
|
-
roleId,
|
|
164
|
-
loggedInUser,
|
|
165
|
-
);
|
|
145
|
+
const role = await this.roleRepo.findById(roleId);
|
|
166
146
|
roles.push(role);
|
|
167
147
|
}
|
|
168
148
|
userDto.roles = roles;
|
|
@@ -172,13 +152,13 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
172
152
|
return null;
|
|
173
153
|
}
|
|
174
154
|
|
|
175
|
-
async
|
|
176
|
-
|
|
155
|
+
async updateUser(
|
|
156
|
+
id: number,
|
|
157
|
+
userDto: UpdateUserDto,
|
|
177
158
|
loggedInUserData: UserData,
|
|
178
|
-
)
|
|
179
|
-
const userDto = entityData as UpdateUserDto;
|
|
159
|
+
) {
|
|
180
160
|
|
|
181
|
-
const existingUser = await this.userRepository.findById(
|
|
161
|
+
const existingUser = await this.userRepository.findById(id);
|
|
182
162
|
|
|
183
163
|
if (!existingUser) {
|
|
184
164
|
return { success: false, error: 'User not found' };
|
|
@@ -208,10 +188,7 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
208
188
|
const updatedUserData = { ...userDto } as any;
|
|
209
189
|
delete updatedUserData.access;
|
|
210
190
|
|
|
211
|
-
const savedData = await
|
|
212
|
-
updatedUserData,
|
|
213
|
-
loggedInUserData,
|
|
214
|
-
);
|
|
191
|
+
const savedData = await this.userRepository.updateUser(id, updatedUserData);
|
|
215
192
|
|
|
216
193
|
// Handle updated access levels
|
|
217
194
|
if (userDto.access && userDto.access.length > 0) {
|
|
@@ -235,12 +212,11 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
235
212
|
}
|
|
236
213
|
|
|
237
214
|
for (const levelId of level_ids) {
|
|
238
|
-
const userRoleMapping = new UserRoleMapping(
|
|
215
|
+
const userRoleMapping = new UserRoleMapping(id, role_id);
|
|
239
216
|
userRoleMapping.level_type = level_type;
|
|
240
217
|
userRoleMapping.level_id = String(levelId);
|
|
241
218
|
userRoleMapping.appcode = app_code;
|
|
242
|
-
userRoleMapping.
|
|
243
|
-
loggedInUserData?.organization_id || 0;
|
|
219
|
+
userRoleMapping.enterprise_id = loggedInUserData.enterprise_id;
|
|
244
220
|
|
|
245
221
|
insertPromises.push(
|
|
246
222
|
this.userRoleMappingService.assignUserRole(userRoleMapping),
|
|
@@ -261,9 +237,10 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
261
237
|
|
|
262
238
|
async findByEmailId(
|
|
263
239
|
email_id: string,
|
|
264
|
-
|
|
240
|
+
enterprise_id?: number,
|
|
241
|
+
getLastApp?: boolean,
|
|
265
242
|
): Promise<UserData | null> {
|
|
266
|
-
return await this.userRepository.findByEmailId(email_id,
|
|
243
|
+
return await this.userRepository.findByEmailId(email_id, enterprise_id, getLastApp);
|
|
267
244
|
}
|
|
268
245
|
|
|
269
246
|
async findByMobile(
|
|
@@ -278,14 +255,14 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
278
255
|
);
|
|
279
256
|
}
|
|
280
257
|
|
|
281
|
-
async setDefaultLastAccess(userId: number,
|
|
258
|
+
async setDefaultLastAccess(userId: number, app_id: number): Promise<void> {
|
|
282
259
|
const user = await this.userRepository.findById(userId);
|
|
283
260
|
|
|
284
261
|
if (!user) {
|
|
285
262
|
throw new BadRequestException('User not found');
|
|
286
263
|
}
|
|
287
264
|
|
|
288
|
-
user.
|
|
265
|
+
user.last_app_access_id = app_id;
|
|
289
266
|
|
|
290
267
|
await this.userRepository.saveUser(user); // This persists the updated field
|
|
291
268
|
}
|
|
@@ -294,7 +271,7 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
294
271
|
userId: number,
|
|
295
272
|
levelType: string,
|
|
296
273
|
levelId: string,
|
|
297
|
-
|
|
274
|
+
app_id: number,
|
|
298
275
|
): Promise<void> {
|
|
299
276
|
const user = await this.userRepository.findById(userId);
|
|
300
277
|
|
|
@@ -304,7 +281,7 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
304
281
|
|
|
305
282
|
user.last_level_type = levelType;
|
|
306
283
|
user.last_level_id = levelId;
|
|
307
|
-
user.
|
|
284
|
+
user.last_app_access_id = app_id;
|
|
308
285
|
|
|
309
286
|
await this.userRepository.saveUser(user); // This persists the updated field
|
|
310
287
|
}
|
|
@@ -319,15 +296,15 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
319
296
|
return { success: false, message: 'Email and Subdomain is required' };
|
|
320
297
|
}
|
|
321
298
|
|
|
322
|
-
let
|
|
299
|
+
let enterprise;
|
|
323
300
|
|
|
324
301
|
if (subdomain) {
|
|
325
|
-
|
|
326
|
-
await this.
|
|
302
|
+
enterprise =
|
|
303
|
+
await this.enterpriseRepository.findEnterpriseBySubdomain(
|
|
327
304
|
subdomain,
|
|
328
305
|
);
|
|
329
306
|
|
|
330
|
-
if (!
|
|
307
|
+
if (!enterprise) {
|
|
331
308
|
// throw new BadRequestException('Organization not found.');
|
|
332
309
|
return {
|
|
333
310
|
success: false,
|
|
@@ -339,14 +316,14 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
339
316
|
// 🔹 Step 2: Find the user by email + organization check
|
|
340
317
|
const user = await this.userRepository.findByEmailId(
|
|
341
318
|
email_id,
|
|
342
|
-
|
|
319
|
+
enterprise?.id,
|
|
343
320
|
);
|
|
344
321
|
|
|
345
|
-
if (!user || (
|
|
322
|
+
if (!user || (enterprise && user.enterprise_id !== enterprise.id)) {
|
|
346
323
|
// throw new BadRequestException('User not found in organization.');
|
|
347
324
|
return {
|
|
348
325
|
success: false,
|
|
349
|
-
message: 'User not found in
|
|
326
|
+
message: 'User not found in enterprise.',
|
|
350
327
|
};
|
|
351
328
|
}
|
|
352
329
|
|
|
@@ -365,4 +342,8 @@ export class UserService extends EntityServiceImpl implements Action {
|
|
|
365
342
|
};
|
|
366
343
|
}
|
|
367
344
|
}
|
|
345
|
+
|
|
346
|
+
async find(options: any): Promise<UserData[]> {
|
|
347
|
+
return await this.userRepository.find(options);
|
|
348
|
+
}
|
|
368
349
|
}
|