rez_core 6.5.23 → 6.5.26
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/dist/app.module.js +3 -3
- package/dist/app.module.js.map +1 -1
- package/dist/core.module.js +38 -60
- package/dist/core.module.js.map +1 -1
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +6 -0
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +32 -0
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +1 -0
- package/dist/module/auth/strategies/jwt.strategy.d.ts +1 -2
- package/dist/module/auth/strategies/jwt.strategy.js +2 -3
- 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 +3 -2
- package/dist/module/dashboard/service/dashboard.service.js.map +1 -1
- package/dist/module/enterprise/controller/organization.controller.d.ts +4 -12
- package/dist/module/enterprise/controller/organization.controller.js +8 -64
- package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
- package/dist/module/enterprise/enterprise.module.js +15 -10
- package/dist/module/enterprise/enterprise.module.js.map +1 -1
- package/dist/module/enterprise/entity/enterprise.entity.d.ts +3 -1
- package/dist/module/enterprise/entity/enterprise.entity.js +12 -4
- package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +1 -6
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js +4 -21
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization.entity.d.ts +18 -3
- package/dist/module/enterprise/entity/organization.entity.js +74 -8
- package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
- package/dist/module/enterprise/repository/enterprise.repository.d.ts +2 -4
- package/dist/module/enterprise/repository/enterprise.repository.js +4 -19
- package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
- package/dist/module/enterprise/service/brand.service.d.ts +3 -0
- package/dist/module/enterprise/service/brand.service.js +17 -0
- 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 +24 -101
- package/dist/module/enterprise/service/organization.service.js.map +1 -1
- package/dist/module/entity_json/controller/entity_json.controller.d.ts +2 -9
- package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
- package/dist/module/entity_json/entity/entityJson.entity.d.ts +2 -1
- package/dist/module/entity_json/entity/entityJson.entity.js +5 -1
- package/dist/module/entity_json/entity/entityJson.entity.js.map +1 -1
- package/dist/module/entity_json/entity_json.module.js +7 -2
- package/dist/module/entity_json/entity_json.module.js.map +1 -1
- package/dist/module/entity_json/service/entity_json.service.d.ts +2 -10
- package/dist/module/entity_json/service/entity_json.service.js +97 -23
- package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
- package/dist/module/filter/controller/filter.controller.d.ts +12 -0
- 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 +11 -2
- package/dist/module/filter/filter.module.js.map +1 -1
- package/dist/module/filter/service/filter.service.d.ts +38 -2
- package/dist/module/filter/service/filter.service.js +43 -50
- package/dist/module/filter/service/filter.service.js.map +1 -1
- package/dist/module/filter/service/flatjson-filter.service.d.ts +32 -0
- package/dist/module/filter/service/flatjson-filter.service.js +632 -0
- package/dist/module/filter/service/flatjson-filter.service.js.map +1 -0
- package/dist/module/filter/service/saved-filter.service.d.ts +3 -2
- package/dist/module/filter/service/saved-filter.service.js +14 -18
- package/dist/module/filter/service/saved-filter.service.js.map +1 -1
- package/dist/module/integration/service/integration.service.d.ts +1 -0
- package/dist/module/integration/service/integration.service.js +2 -1
- package/dist/module/integration/service/integration.service.js.map +1 -1
- package/dist/module/integration/service/wrapper.service.js +1 -0
- package/dist/module/integration/service/wrapper.service.js.map +1 -1
- package/dist/module/layout/controller/layout.controller.d.ts +3 -1
- package/dist/module/layout/controller/layout.controller.js +7 -3
- package/dist/module/layout/controller/layout.controller.js.map +1 -1
- package/dist/module/layout/entity/header-section.entity.d.ts +2 -0
- package/dist/module/layout/entity/header-section.entity.js +8 -0
- package/dist/module/layout/entity/header-section.entity.js.map +1 -1
- package/dist/module/layout/layout.module.js +2 -1
- package/dist/module/layout/layout.module.js.map +1 -1
- package/dist/module/layout/repository/header-section.repository.d.ts +1 -0
- package/dist/module/layout/repository/header-section.repository.js +5 -0
- 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 +41 -0
- package/dist/module/linked_attributes/controller/linked_attributes.controller.js +90 -0
- package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -1
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.d.ts +13 -0
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js +64 -0
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js.map +1 -0
- package/dist/module/linked_attributes/linked_attributes.module.js +8 -1
- package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -1
- package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +65 -1
- package/dist/module/linked_attributes/service/linked_attributes.service.js +287 -2
- package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
- package/dist/module/listmaster/service/list-master.service.js +8 -1
- package/dist/module/listmaster/service/list-master.service.js.map +1 -1
- package/dist/module/meta/controller/meta.controller.d.ts +6 -1
- package/dist/module/meta/controller/meta.controller.js +19 -1
- package/dist/module/meta/controller/meta.controller.js.map +1 -1
- package/dist/module/meta/entity/app-master.entity.d.ts +4 -8
- package/dist/module/meta/entity/app-master.entity.js +12 -30
- package/dist/module/meta/entity/app-master.entity.js.map +1 -1
- package/dist/module/meta/entity/entity-master.entity.d.ts +1 -0
- package/dist/module/meta/entity/entity-master.entity.js +8 -1
- package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
- package/dist/module/meta/entity.module.js +5 -2
- package/dist/module/meta/entity.module.js.map +1 -1
- package/dist/module/meta/repository/app-master.repository.js +1 -1
- package/dist/module/meta/repository/app-master.repository.js.map +1 -1
- package/dist/module/meta/service/attribute-master.service.d.ts +6 -1
- package/dist/module/meta/service/attribute-master.service.js +22 -2
- package/dist/module/meta/service/attribute-master.service.js.map +1 -1
- package/dist/module/meta/service/entity-master.service.js +1 -0
- package/dist/module/meta/service/entity-master.service.js.map +1 -1
- package/dist/module/meta/service/entity-relation.service.d.ts +4 -3
- package/dist/module/meta/service/entity-relation.service.js +10 -4
- 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 +14 -10
- package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
- package/dist/module/meta/service/entity-table.service.d.ts +2 -3
- package/dist/module/meta/service/entity-table.service.js +19 -23
- package/dist/module/meta/service/entity-table.service.js.map +1 -1
- package/dist/module/meta/service/populate-meta.service.d.ts +13 -0
- package/dist/module/{enterprise → meta}/service/populate-meta.service.js +8 -2
- package/dist/module/meta/service/populate-meta.service.js.map +1 -0
- package/dist/module/meta/service/resolver.service.d.ts +1 -1
- package/dist/module/meta/service/resolver.service.js +6 -3
- package/dist/module/meta/service/resolver.service.js.map +1 -1
- package/dist/module/module/controller/menu.controller.js +2 -2
- package/dist/module/module/controller/menu.controller.js.map +1 -1
- package/dist/module/module/controller/module-access.controller.d.ts +4 -3
- package/dist/module/module/controller/module-access.controller.js +10 -15
- package/dist/module/module/controller/module-access.controller.js.map +1 -1
- package/dist/module/module/entity/menu.entity.d.ts +2 -6
- package/dist/module/module/entity/menu.entity.js +7 -19
- package/dist/module/module/entity/menu.entity.js.map +1 -1
- package/dist/module/module/entity/module-access.entity.d.ts +0 -15
- package/dist/module/module/entity/module-access.entity.js +0 -50
- package/dist/module/module/entity/module-access.entity.js.map +1 -1
- package/dist/module/module/entity/module-action.entity.d.ts +1 -4
- package/dist/module/module/entity/module-action.entity.js +3 -12
- package/dist/module/module/entity/module-action.entity.js.map +1 -1
- package/dist/module/module/entity/module.entity.d.ts +5 -3
- package/dist/module/module/entity/module.entity.js +18 -8
- 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 +7 -5
- package/dist/module/module/module.module.js.map +1 -1
- package/dist/module/module/repository/menu.repository.d.ts +4 -4
- package/dist/module/module/repository/menu.repository.js +27 -17
- package/dist/module/module/repository/menu.repository.js.map +1 -1
- package/dist/module/module/repository/module-access.repository.d.ts +7 -7
- package/dist/module/module/repository/module-access.repository.js +44 -82
- package/dist/module/module/repository/module-access.repository.js.map +1 -1
- package/dist/module/module/service/menu.service.d.ts +5 -3
- package/dist/module/module/service/menu.service.js +12 -9
- package/dist/module/module/service/menu.service.js.map +1 -1
- package/dist/module/module/service/module-access.service.d.ts +11 -8
- package/dist/module/module/service/module-access.service.js +26 -24
- package/dist/module/module/service/module-access.service.js.map +1 -1
- package/dist/module/notification/entity/notification.entity.d.ts +2 -17
- package/dist/module/notification/entity/notification.entity.js +2 -68
- package/dist/module/notification/entity/notification.entity.js.map +1 -1
- package/dist/module/notification/notification.module.js +2 -0
- package/dist/module/notification/notification.module.js.map +1 -1
- package/dist/module/notification/service/notification.service.d.ts +3 -1
- package/dist/module/notification/service/notification.service.js +5 -2
- package/dist/module/notification/service/notification.service.js.map +1 -1
- package/dist/module/notification/service/otp.service.js.map +1 -1
- package/dist/module/user/controller/login.controller.d.ts +3 -1
- package/dist/module/user/controller/login.controller.js +6 -2
- package/dist/module/user/controller/login.controller.js.map +1 -1
- package/dist/module/user/controller/user.controller.d.ts +2 -0
- package/dist/module/user/controller/user.controller.js +13 -0
- package/dist/module/user/controller/user.controller.js.map +1 -1
- package/dist/module/user/dto/create-user.dto.d.ts +3 -6
- package/dist/module/user/dto/create-user.dto.js +11 -17
- package/dist/module/user/dto/create-user.dto.js.map +1 -1
- package/dist/module/user/entity/role.entity.d.ts +6 -19
- package/dist/module/user/entity/role.entity.js +19 -68
- package/dist/module/user/entity/role.entity.js.map +1 -1
- package/dist/module/user/entity/user-role-mapping.entity.d.ts +0 -10
- package/dist/module/user/entity/user-role-mapping.entity.js +1 -33
- package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
- package/dist/module/user/entity/user-session.entity.js +3 -2
- package/dist/module/user/entity/user-session.entity.js.map +1 -1
- package/dist/module/user/entity/user.entity.d.ts +5 -19
- package/dist/module/user/entity/user.entity.js +15 -69
- package/dist/module/user/entity/user.entity.js.map +1 -1
- package/dist/module/user/repository/role.repository.d.ts +2 -6
- package/dist/module/user/repository/role.repository.js +8 -16
- package/dist/module/user/repository/role.repository.js.map +1 -1
- package/dist/module/user/repository/user-role-mapping.repository.d.ts +0 -1
- package/dist/module/user/repository/user-role-mapping.repository.js +0 -3
- package/dist/module/user/repository/user-role-mapping.repository.js.map +1 -1
- package/dist/module/user/repository/user.repository.d.ts +2 -4
- package/dist/module/user/repository/user.repository.js +7 -19
- package/dist/module/user/repository/user.repository.js.map +1 -1
- package/dist/module/user/repository/userSession.repository.d.ts +0 -1
- package/dist/module/user/repository/userSession.repository.js +0 -3
- package/dist/module/user/repository/userSession.repository.js.map +1 -1
- package/dist/module/user/service/login.service.d.ts +5 -3
- package/dist/module/user/service/login.service.js +42 -43
- package/dist/module/user/service/login.service.js.map +1 -1
- package/dist/module/user/service/role.service.d.ts +11 -24
- package/dist/module/user/service/role.service.js +38 -42
- package/dist/module/user/service/role.service.js.map +1 -1
- package/dist/module/user/service/user-role-mapping.service.d.ts +0 -2
- package/dist/module/user/service/user-role-mapping.service.js +0 -6
- package/dist/module/user/service/user-role-mapping.service.js.map +1 -1
- package/dist/module/user/service/user-session.service.d.ts +1 -2
- package/dist/module/user/service/user-session.service.js +5 -9
- package/dist/module/user/service/user-session.service.js.map +1 -1
- package/dist/module/user/service/user.service.d.ts +20 -29
- package/dist/module/user/service/user.service.js +56 -44
- package/dist/module/user/service/user.service.js.map +1 -1
- package/dist/module/user/user.module.js +7 -1
- 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 +8 -6
- 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 +2 -1
- 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 +2 -0
- package/dist/module/workflow/service/comm-template.service.js.map +1 -1
- package/dist/module/workflow/service/entity-modification.service.js +1 -0
- 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 +3 -0
- package/dist/module/workflow/service/task.service.js.map +1 -1
- package/dist/module/workflow/service/workflow-meta.service.js +7 -2
- 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 +0 -2
- package/dist/module/workflow/workflow.module.js.map +1 -1
- package/dist/module/workflow-automation/service/workflow-automation.service.js +6 -11
- package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
- package/dist/module/workflow-automation/workflow-automation.module.js +1 -3
- package/dist/module/workflow-automation/workflow-automation.module.js.map +1 -1
- package/dist/module/workflow-schedule/service/workflow-schedule.service.js +2 -0
- package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -1
- package/dist/table.config.d.ts +3 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/app.module.ts +5 -5
- package/src/core.module.ts +44 -55
- package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +41 -0
- package/src/module/auth/strategies/jwt.strategy.ts +2 -4
- package/src/module/dashboard/dashboard.module.ts +3 -3
- package/src/module/dashboard/service/dashboard.service.ts +3 -2
- package/src/module/enterprise/controller/organization.controller.ts +4 -60
- package/src/module/enterprise/enterprise.module.ts +18 -16
- package/src/module/enterprise/entity/enterprise.entity.ts +11 -5
- package/src/module/enterprise/entity/organization-app-mapping.entity.ts +4 -18
- package/src/module/enterprise/entity/organization.entity.ts +59 -9
- package/src/module/enterprise/repository/enterprise.repository.ts +4 -26
- package/src/module/enterprise/service/brand.service.ts +5 -75
- package/src/module/enterprise/service/enterprise.service.ts +4 -10
- package/src/module/enterprise/service/organization.service.ts +23 -140
- package/src/module/entity_json/controller/entity_json.controller.ts +13 -0
- package/src/module/entity_json/docs/FlatJson_Filterin_System.md +2804 -0
- package/src/module/entity_json/entity/entityJson.entity.ts +4 -1
- package/src/module/entity_json/entity_json.module.ts +9 -5
- package/src/module/entity_json/service/entity_json.service.ts +232 -49
- package/src/module/filter/controller/filter.controller.ts +1 -3
- package/src/module/filter/filter.module.ts +12 -3
- package/src/module/filter/service/filter.service.ts +130 -73
- package/src/module/filter/service/flatjson-filter.service.ts +903 -0
- package/src/module/filter/service/saved-filter.service.ts +16 -26
- package/src/module/filter/test/flatjson-filter.service.spec.ts +415 -0
- package/src/module/integration/service/integration.service.ts +6 -2
- package/src/module/integration/service/wrapper.service.ts +1 -0
- package/src/module/layout/controller/layout.controller.ts +8 -1
- package/src/module/layout/entity/header-section.entity.ts +6 -0
- package/src/module/layout/layout.module.ts +1 -1
- package/src/module/layout/repository/header-section.repository.ts +6 -0
- package/src/module/layout/service/header-section.service.ts +1 -1
- package/src/module/linked_attributes/controller/linked_attributes.controller.ts +100 -0
- package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +54 -0
- package/src/module/linked_attributes/linked_attributes.module.ts +9 -2
- package/src/module/linked_attributes/service/linked_attributes.service.ts +578 -3
- package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +244 -0
- package/src/module/listmaster/service/list-master.service.ts +9 -1
- package/src/module/meta/controller/meta.controller.ts +25 -3
- package/src/module/meta/entity/app-master.entity.ts +9 -22
- package/src/module/meta/entity/entity-master.entity.ts +9 -3
- package/src/module/meta/entity.module.ts +6 -5
- package/src/module/meta/repository/app-master.repository.ts +1 -1
- package/src/module/meta/service/attribute-master.service.ts +31 -1
- package/src/module/meta/service/entity-master.service.ts +1 -0
- package/src/module/meta/service/entity-relation.service.ts +10 -6
- package/src/module/meta/service/entity-service-impl.service.ts +14 -19
- package/src/module/meta/service/entity-table.service.ts +28 -20
- package/src/module/meta/service/entity.service.ts +0 -1
- package/src/module/{enterprise → meta}/service/populate-meta.service.ts +5 -2
- package/src/module/meta/service/resolver.service.ts +4 -0
- package/src/module/module/controller/menu.controller.ts +2 -2
- package/src/module/module/controller/module-access.controller.ts +11 -16
- package/src/module/module/entity/menu.entity.ts +7 -17
- package/src/module/module/entity/module-access.entity.ts +1 -41
- package/src/module/module/entity/module-action.entity.ts +4 -11
- package/src/module/module/entity/module.entity.ts +14 -7
- package/src/module/module/module.module.ts +3 -2
- package/src/module/module/repository/menu.repository.ts +31 -19
- package/src/module/module/repository/module-access.repository.ts +60 -97
- package/src/module/module/service/menu.service.ts +13 -11
- package/src/module/module/service/module-access.service.ts +38 -26
- package/src/module/notification/entity/notification.entity.ts +3 -53
- package/src/module/notification/notification.module.ts +2 -0
- package/src/module/notification/service/notification.service.ts +1 -0
- package/src/module/notification/service/otp.service.ts +2 -3
- package/src/module/user/controller/login.controller.ts +8 -7
- package/src/module/user/controller/user.controller.ts +9 -0
- package/src/module/user/dto/create-user.dto.ts +6 -19
- package/src/module/user/entity/role.entity.ts +16 -62
- package/src/module/user/entity/user-role-mapping.entity.ts +3 -29
- package/src/module/user/entity/user-session.entity.ts +4 -3
- package/src/module/user/entity/user.entity.ts +13 -54
- package/src/module/user/repository/role.repository.ts +12 -24
- package/src/module/user/repository/user-role-mapping.repository.ts +1 -5
- package/src/module/user/repository/user.repository.ts +8 -28
- package/src/module/user/repository/userSession.repository.ts +1 -5
- package/src/module/user/service/login.service.ts +51 -47
- package/src/module/user/service/role.service.ts +60 -53
- package/src/module/user/service/user-role-mapping.service.ts +1 -23
- package/src/module/user/service/user-session.service.ts +6 -12
- package/src/module/user/service/user.service.ts +91 -64
- package/src/module/user/user.module.ts +5 -3
- package/src/module/workflow/repository/action-data.repository.ts +8 -6
- 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 +2 -3
- package/src/module/workflow/service/action.service.ts +2 -2
- package/src/module/workflow/service/comm-template.service.ts +2 -0
- package/src/module/workflow/service/entity-modification.service.ts +1 -0
- 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 +3 -0
- package/src/module/workflow/service/workflow-meta.service.ts +7 -2
- package/src/module/workflow/service/workflow.service.ts +2 -2
- package/src/module/workflow/workflow.module.ts +0 -2
- package/src/module/workflow-automation/service/workflow-automation.service.ts +7 -19
- package/src/module/workflow-automation/workflow-automation.module.ts +3 -4
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +2 -0
- package/src/resources/dev.properties.yaml +2 -2
- package/.claude/settings.local.json +0 -26
- package/.idea/250218_nodejs_core.iml +0 -9
- package/.idea/codeStyles/Project.xml +0 -59
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/copilot.data.migration.agent.xml +0 -6
- package/.idea/copilot.data.migration.ask.xml +0 -6
- package/.idea/copilot.data.migration.ask2agent.xml +0 -6
- package/.idea/copilot.data.migration.edit.xml +0 -6
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/prettier.xml +0 -6
- package/.idea/vcs.xml +0 -6
- package/dist/constant/status.constant.d.ts +0 -4
- package/dist/constant/status.constant.js +0 -9
- package/dist/constant/status.constant.js.map +0 -1
- package/dist/module/enterprise/controller/enterprise.controller.d.ts +0 -12
- package/dist/module/enterprise/controller/enterprise.controller.js +0 -57
- package/dist/module/enterprise/controller/enterprise.controller.js.map +0 -1
- package/dist/module/enterprise/controller/meta.controller.d.ts +0 -9
- package/dist/module/enterprise/controller/meta.controller.js +0 -43
- package/dist/module/enterprise/controller/meta.controller.js.map +0 -1
- package/dist/module/enterprise/service/brand-profile.service.d.ts +0 -0
- package/dist/module/enterprise/service/brand-profile.service.js +0 -1
- package/dist/module/enterprise/service/brand-profile.service.js.map +0 -1
- package/dist/module/enterprise/service/populate-meta.service.d.ts +0 -9
- package/dist/module/enterprise/service/populate-meta.service.js.map +0 -1
- package/dist/module/enterprise/service/school.service.d.ts +0 -0
- package/dist/module/enterprise/service/school.service.js +0 -1
- package/dist/module/enterprise/service/school.service.js.map +0 -1
- package/server.log +0 -850
- package/src/constant/status.constant.ts +0 -4
- package/src/module/enterprise/controller/enterprise.controller.ts +0 -40
- package/src/module/enterprise/controller/meta.controller.ts +0 -23
- package/src/module/enterprise/service/brand-profile.service.ts +0 -10
- package/src/module/enterprise/service/school.service.ts +0 -5
|
@@ -1,55 +1,56 @@
|
|
|
1
1
|
import { BadRequestException, Injectable } from '@nestjs/common';
|
|
2
2
|
import { InjectRepository } from '@nestjs/typeorm';
|
|
3
|
-
import { In,
|
|
3
|
+
import { In, Not, Repository, IsNull, DataSource } 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';
|
|
9
8
|
|
|
10
9
|
@Injectable()
|
|
11
10
|
export class ModuleAccessRepository {
|
|
12
11
|
constructor(
|
|
13
12
|
@InjectRepository(Role)
|
|
14
13
|
private readonly roleRepo: Repository<Role>,
|
|
14
|
+
|
|
15
15
|
@InjectRepository(ModuleData)
|
|
16
16
|
private readonly moduleRepo: Repository<ModuleData>,
|
|
17
|
+
|
|
17
18
|
@InjectRepository(ModuleAccess)
|
|
18
19
|
private readonly moduleAccessRepo: Repository<ModuleAccess>,
|
|
20
|
+
|
|
19
21
|
@InjectRepository(ModuleAction)
|
|
20
22
|
private readonly moduleActionRepo: Repository<ModuleAction>,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
23
|
+
|
|
24
|
+
private readonly dataSource: DataSource,
|
|
25
|
+
) {}
|
|
24
26
|
|
|
25
27
|
async getRoles({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
appcode,
|
|
29
|
+
level_type,
|
|
30
|
+
level_id,
|
|
31
|
+
}: {
|
|
30
32
|
appcode: string;
|
|
31
33
|
level_type?: string;
|
|
32
34
|
level_id?: number;
|
|
33
35
|
}) {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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)');
|
|
40
42
|
|
|
41
43
|
if (level_type) {
|
|
42
|
-
|
|
44
|
+
query.andWhere('role.level_type = :level_type', { level_type });
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
if (level_id !== undefined) {
|
|
46
|
-
|
|
48
|
+
query.andWhere('role.level_id = :level_id', {
|
|
49
|
+
level_id: String(level_id),
|
|
50
|
+
});
|
|
47
51
|
}
|
|
48
52
|
|
|
49
|
-
const roles = await
|
|
50
|
-
where,
|
|
51
|
-
select: ['id', 'name'], // keep returned data same as your mapping
|
|
52
|
-
});
|
|
53
|
+
const roles = await query.getRawMany(); // use getRawMany since you're selecting from a raw table
|
|
53
54
|
|
|
54
55
|
return roles.map((role) => ({
|
|
55
56
|
label: role.name,
|
|
@@ -58,30 +59,20 @@ export class ModuleAccessRepository {
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
async getModules({
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
appcode,
|
|
63
|
+
loggedInUser,
|
|
64
|
+
}: {
|
|
64
65
|
appcode: string;
|
|
65
66
|
loggedInUser: any;
|
|
66
67
|
}) {
|
|
67
68
|
let modules: any[];
|
|
68
69
|
if (loggedInUser.level_type == 'SCH') {
|
|
69
70
|
modules = await this.moduleRepo.find({
|
|
70
|
-
where: {
|
|
71
|
-
module_level: 'MAINMOD',
|
|
72
|
-
app: {
|
|
73
|
-
code: appcode,
|
|
74
|
-
},
|
|
75
|
-
level_type: 'SCH',
|
|
76
|
-
},
|
|
71
|
+
where: { module_level: 'MAINMOD', appcode, level_type: 'SCH' },
|
|
77
72
|
});
|
|
78
73
|
} else {
|
|
79
74
|
modules = await this.moduleRepo.find({
|
|
80
|
-
where: {
|
|
81
|
-
module_level: 'MAINMOD', app: {
|
|
82
|
-
code: appcode,
|
|
83
|
-
},
|
|
84
|
-
},
|
|
75
|
+
where: { module_level: 'MAINMOD', appcode },
|
|
85
76
|
});
|
|
86
77
|
}
|
|
87
78
|
|
|
@@ -114,76 +105,53 @@ export class ModuleAccessRepository {
|
|
|
114
105
|
roles = await this.roleRepo.find({
|
|
115
106
|
where: {
|
|
116
107
|
id: In(fetchedRoleIds),
|
|
117
|
-
|
|
118
|
-
code: appcode,
|
|
119
|
-
},
|
|
108
|
+
appcode,
|
|
120
109
|
},
|
|
121
110
|
});
|
|
122
111
|
} else {
|
|
123
112
|
roles = await this.roleRepo.find({
|
|
124
113
|
where: {
|
|
125
114
|
id: In(roleIds.map((id) => Number(id))),
|
|
126
|
-
|
|
127
|
-
code: appcode,
|
|
128
|
-
},
|
|
115
|
+
appcode,
|
|
129
116
|
},
|
|
130
117
|
});
|
|
131
118
|
}
|
|
132
119
|
|
|
133
120
|
if (!roles.length) return [];
|
|
134
121
|
|
|
122
|
+
const roleCodes = roles.map((role) => role.code);
|
|
123
|
+
|
|
135
124
|
const moduleAccesses = await this.moduleAccessRepo.find({
|
|
136
125
|
where: {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
code: appcode,
|
|
140
|
-
},
|
|
141
|
-
level_type: levelType,
|
|
142
|
-
},
|
|
143
|
-
relations: {
|
|
144
|
-
app: true,
|
|
145
|
-
module: true,
|
|
126
|
+
role_code: In(roleCodes),
|
|
127
|
+
appcode,
|
|
146
128
|
},
|
|
147
129
|
});
|
|
148
130
|
|
|
149
131
|
return roles.map((role) => ({
|
|
150
|
-
|
|
132
|
+
role_code: role.code,
|
|
151
133
|
name: role.name,
|
|
152
134
|
permission: moduleAccesses
|
|
153
|
-
.filter((access) => access.
|
|
135
|
+
.filter((access) => access.role_code === role.code)
|
|
154
136
|
.map((access) => ({
|
|
155
137
|
action: access.action_type,
|
|
156
138
|
access: access.access_flag,
|
|
157
|
-
|
|
139
|
+
code: access.module_code,
|
|
158
140
|
level_type: access.level_type,
|
|
159
|
-
|
|
160
|
-
code: access.module.module_code,
|
|
161
|
-
appcode: access.app.code,
|
|
141
|
+
appcode: access.appcode,
|
|
162
142
|
})),
|
|
163
143
|
}));
|
|
164
144
|
}
|
|
165
145
|
|
|
166
146
|
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
|
-
|
|
179
147
|
const mainModules =
|
|
180
148
|
mainModIds.length === 1 && mainModIds[0] === '-1'
|
|
181
149
|
? await this.moduleRepo.find({
|
|
182
|
-
|
|
183
|
-
|
|
150
|
+
where: { module_level: 'MAINMOD', appcode },
|
|
151
|
+
})
|
|
184
152
|
: await this.moduleRepo.find({
|
|
185
|
-
|
|
186
|
-
|
|
153
|
+
where: { id: In(mainModIds), module_level: 'MAINMOD', appcode },
|
|
154
|
+
});
|
|
187
155
|
|
|
188
156
|
if (!mainModules.length) return {};
|
|
189
157
|
|
|
@@ -197,7 +165,7 @@ export class ModuleAccessRepository {
|
|
|
197
165
|
.join(' OR '),
|
|
198
166
|
Object.fromEntries(wbsCodes.map((code) => [`code${code}`, `${code}%`])),
|
|
199
167
|
)
|
|
200
|
-
.andWhere('module.
|
|
168
|
+
.andWhere('module.appcode = :appcode', { appcode })
|
|
201
169
|
.andWhere('module.module_code != :excludedCode', {
|
|
202
170
|
excludedCode: 'all_organization_adm_org',
|
|
203
171
|
})
|
|
@@ -207,10 +175,10 @@ export class ModuleAccessRepository {
|
|
|
207
175
|
(mod) => mod.module_code != 'all_organization_adm_org',
|
|
208
176
|
);
|
|
209
177
|
|
|
210
|
-
const
|
|
178
|
+
const moduleCodes = allModules.map((m) => m.module_code);
|
|
211
179
|
|
|
212
180
|
const allActions = await this.moduleActionRepo.find({
|
|
213
|
-
where: {
|
|
181
|
+
where: { module_code: In(moduleCodes) },
|
|
214
182
|
});
|
|
215
183
|
|
|
216
184
|
// Map actions by module_code with VIEW action first
|
|
@@ -219,11 +187,11 @@ export class ModuleAccessRepository {
|
|
|
219
187
|
if (!acc[action.module_code]) acc[action.module_code] = [];
|
|
220
188
|
|
|
221
189
|
const actionItem = {
|
|
222
|
-
action: action.
|
|
190
|
+
action: action.action_type,
|
|
223
191
|
name: action.action_name,
|
|
224
192
|
};
|
|
225
193
|
|
|
226
|
-
if (action.
|
|
194
|
+
if (action.action_type === 'VIEW') {
|
|
227
195
|
acc[action.module_code].unshift(actionItem); // ➕ Add VIEW at start
|
|
228
196
|
} else {
|
|
229
197
|
acc[action.module_code].push(actionItem); // ➕ Add others at end
|
|
@@ -247,11 +215,10 @@ export class ModuleAccessRepository {
|
|
|
247
215
|
(mod) =>
|
|
248
216
|
mod.wbs_code.startsWith(`${parentWbs}.`) &&
|
|
249
217
|
mod.wbs_code.split('.').length ===
|
|
250
|
-
|
|
218
|
+
parentWbs.split('.').length + 1,
|
|
251
219
|
)
|
|
252
220
|
.map((mod) => ({
|
|
253
221
|
name: mod.name,
|
|
254
|
-
module_id: mod.id,
|
|
255
222
|
code: mod.module_code,
|
|
256
223
|
permission: actionMap[mod.module_code] || [],
|
|
257
224
|
submod: buildHierarchy(mod.wbs_code),
|
|
@@ -261,7 +228,6 @@ export class ModuleAccessRepository {
|
|
|
261
228
|
.filter((mod) => mod.level_type === lvl)
|
|
262
229
|
.map((mod) => ({
|
|
263
230
|
name: mod.name,
|
|
264
|
-
module_id: mod.id,
|
|
265
231
|
code: mod.module_code,
|
|
266
232
|
permission: actionMap[mod.module_code] || [],
|
|
267
233
|
submod: buildHierarchy(mod.wbs_code),
|
|
@@ -288,16 +254,10 @@ export class ModuleAccessRepository {
|
|
|
288
254
|
for (const access of accessList) {
|
|
289
255
|
const existing = await this.moduleAccessRepo.findOne({
|
|
290
256
|
where: {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
},
|
|
294
|
-
module: {
|
|
295
|
-
module_code: access.module_code,
|
|
296
|
-
},
|
|
257
|
+
role_code: access.role_code,
|
|
258
|
+
module_code: access.module_code,
|
|
297
259
|
action_type: access.action_type,
|
|
298
|
-
|
|
299
|
-
code: access.appcode,
|
|
300
|
-
},
|
|
260
|
+
appcode: access.appcode,
|
|
301
261
|
level_type: access.level_type,
|
|
302
262
|
},
|
|
303
263
|
});
|
|
@@ -307,7 +267,7 @@ export class ModuleAccessRepository {
|
|
|
307
267
|
await this.moduleAccessRepo.save(existing);
|
|
308
268
|
} else {
|
|
309
269
|
await this.moduleAccessRepo.save(
|
|
310
|
-
this.moduleAccessRepo.create(access),
|
|
270
|
+
await this.moduleAccessRepo.create(access),
|
|
311
271
|
);
|
|
312
272
|
}
|
|
313
273
|
}
|
|
@@ -325,10 +285,13 @@ export class ModuleAccessRepository {
|
|
|
325
285
|
|
|
326
286
|
if (!module) throw new BadRequestException('Module not found');
|
|
327
287
|
|
|
288
|
+
const roles = await this.roleRepo.find({ where: { id: In(roleIds) } });
|
|
289
|
+
const roleCodes = roles.map((role) => role.code);
|
|
290
|
+
|
|
328
291
|
const actions = await this.moduleAccessRepo.find({
|
|
329
292
|
where: {
|
|
330
|
-
|
|
331
|
-
|
|
293
|
+
module_code: moduleCode,
|
|
294
|
+
role_code: In(roleCodes),
|
|
332
295
|
access_flag: 1,
|
|
333
296
|
},
|
|
334
297
|
});
|
|
@@ -338,16 +301,16 @@ export class ModuleAccessRepository {
|
|
|
338
301
|
return {
|
|
339
302
|
entity_type: module.entity_type,
|
|
340
303
|
title: module.title,
|
|
304
|
+
ui_config: module.ui_config || {},
|
|
341
305
|
action: uniqueActions,
|
|
342
306
|
};
|
|
343
307
|
}
|
|
344
|
-
|
|
345
|
-
async getModuleAccessByRoles(roleIds: number[], app_id: number) {
|
|
308
|
+
async getModuleAccessByRoles(roleIds: number[], appcode: string) {
|
|
346
309
|
// Step 1: Get role codes from sso_role
|
|
347
310
|
const roles = await this.roleRepo.find({
|
|
348
311
|
where: {
|
|
349
312
|
id: In(roleIds),
|
|
350
|
-
|
|
313
|
+
appcode,
|
|
351
314
|
},
|
|
352
315
|
select: ['id', 'code'],
|
|
353
316
|
});
|
|
@@ -366,7 +329,7 @@ export class ModuleAccessRepository {
|
|
|
366
329
|
'access.appcode AS appcode',
|
|
367
330
|
])
|
|
368
331
|
.where('access.role_code IN (:...roleCodes)', { roleCodes })
|
|
369
|
-
.andWhere('access.
|
|
332
|
+
.andWhere('access.appcode = :appcode', { appcode })
|
|
370
333
|
.getRawMany();
|
|
371
334
|
|
|
372
335
|
// Step 3: Format output
|
|
@@ -1,43 +1,45 @@
|
|
|
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';
|
|
4
6
|
|
|
5
7
|
@Injectable()
|
|
6
8
|
export class MenuService {
|
|
7
9
|
constructor(
|
|
8
10
|
private readonly menuRepository: MenuRepository,
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
+
private readonly datasource: DataSource,
|
|
12
|
+
) {}
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* Fetch and construct menu hierarchy for a given user.
|
|
14
16
|
*/
|
|
15
17
|
async getUserMenu(
|
|
16
18
|
userId: number,
|
|
17
|
-
|
|
19
|
+
appcode: string,
|
|
18
20
|
levelType: 'ORG' | 'SCH',
|
|
19
21
|
levelId: number,
|
|
20
22
|
): Promise<{ menu: any[] }> {
|
|
21
23
|
// Step 1: Resolve roles (with fallback logic inside)
|
|
22
24
|
const roleCodes = await this.menuRepository.resolveUserRoles(
|
|
23
25
|
userId,
|
|
24
|
-
|
|
26
|
+
appcode,
|
|
25
27
|
levelType,
|
|
26
28
|
levelId,
|
|
27
29
|
);
|
|
28
30
|
if (!roleCodes.length) return { menu: [] };
|
|
29
31
|
|
|
30
32
|
// Step 2: Get accessible modules
|
|
31
|
-
const
|
|
33
|
+
const moduleCodes = await this.menuRepository.getAccessibleModules(
|
|
32
34
|
roleCodes,
|
|
33
|
-
|
|
35
|
+
appcode,
|
|
34
36
|
);
|
|
35
|
-
if (!
|
|
37
|
+
if (!moduleCodes.length) return { menu: [] };
|
|
36
38
|
|
|
37
39
|
// Step 3: Get menu items for the given level type
|
|
38
40
|
const menuItems = await this.menuRepository.getMenuItems(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
moduleCodes,
|
|
42
|
+
appcode,
|
|
41
43
|
levelType,
|
|
42
44
|
);
|
|
43
45
|
|
|
@@ -74,7 +76,7 @@ export class MenuService {
|
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
// get user roles
|
|
77
|
-
async getUserRoles(userId: number,
|
|
78
|
-
return this.menuRepository.getUserRoles(userId,
|
|
79
|
+
async getUserRoles(userId: number, appcode: string): Promise<any> {
|
|
80
|
+
return this.menuRepository.getUserRoles(userId, appcode);
|
|
79
81
|
}
|
|
80
82
|
}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
|
-
import { BadRequestException, Injectable } from '@nestjs/common';
|
|
1
|
+
import { BadRequestException, Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
import { ModuleAccessRepository } from '../repository/module-access.repository';
|
|
3
|
-
import {
|
|
3
|
+
import { RoleRepository } from 'src/module/user/repository/role.repository';
|
|
4
|
+
import { RoleService } from '../../user/service/role.service';
|
|
5
|
+
import {
|
|
6
|
+
ENTITYTYPE_ROLE,
|
|
7
|
+
STATUS_INACTIVE,
|
|
8
|
+
} from '../../../constant/global.constant';
|
|
9
|
+
import { Role } from '../../user/entity/role.entity';
|
|
10
|
+
import { DataSource, EntityManager } from 'typeorm';
|
|
4
11
|
import { UserData } from 'src/module/user/entity/user.entity';
|
|
5
12
|
import { MenuRepository } from '../repository/menu.repository';
|
|
13
|
+
import { ListMasterService } from 'src/module/listmaster/service/list-master.service';
|
|
6
14
|
import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
|
|
7
|
-
import { Role } from '../../user/entity/role.entity';
|
|
8
|
-
import { InjectRepository } from '@nestjs/typeorm';
|
|
9
|
-
import { StatusConstant } from '../../../constant/status.constant';
|
|
10
15
|
|
|
11
16
|
@Injectable()
|
|
12
17
|
export class ModuleAccessService {
|
|
13
18
|
constructor(
|
|
14
19
|
private readonly moduleAccessRepository: ModuleAccessRepository,
|
|
15
20
|
private readonly menuRepository: MenuRepository,
|
|
21
|
+
private readonly dataSource: DataSource,
|
|
22
|
+
@Inject('ListMasterService')
|
|
23
|
+
private readonly listMasterService: ListMasterService,
|
|
16
24
|
private readonly reflectionHelper: ReflectionHelper,
|
|
17
|
-
@InjectRepository(Role)
|
|
18
|
-
private readonly roleRepo: Repository<Role>
|
|
19
25
|
) {
|
|
20
26
|
}
|
|
21
27
|
|
|
@@ -36,26 +42,25 @@ export class ModuleAccessService {
|
|
|
36
42
|
level_id?: number;
|
|
37
43
|
include?: boolean;
|
|
38
44
|
}) {
|
|
45
|
+
const query = this.dataSource
|
|
46
|
+
.createQueryBuilder()
|
|
47
|
+
.select('*')
|
|
48
|
+
.from('sso_role', 'role')
|
|
49
|
+
.where('role.appcode = :appcode', { appcode });
|
|
39
50
|
|
|
40
|
-
|
|
41
|
-
app: {
|
|
42
|
-
code: appcode
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
|
|
51
|
+
// Only add this condition if `include` is false (exclude factory roles)
|
|
46
52
|
if (!include) {
|
|
47
|
-
|
|
53
|
+
query.andWhere('(role.is_factory IS NULL OR role.is_factory != 1)');
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
if (level_type && level_id) {
|
|
51
|
-
|
|
52
|
-
|
|
57
|
+
query.andWhere('role.level_type = :level_type', { level_type });
|
|
58
|
+
query.andWhere('role.level_id = :level_id', {
|
|
59
|
+
level_id: String(level_id),
|
|
60
|
+
});
|
|
53
61
|
}
|
|
54
62
|
|
|
55
|
-
const roles = await
|
|
56
|
-
where,
|
|
57
|
-
});
|
|
58
|
-
|
|
63
|
+
const roles = await query.getRawMany();
|
|
59
64
|
|
|
60
65
|
return roles.map((role) => ({
|
|
61
66
|
label: role.name,
|
|
@@ -83,7 +88,7 @@ export class ModuleAccessService {
|
|
|
83
88
|
levelType: string,
|
|
84
89
|
): Promise<Record<string, any[]>> {
|
|
85
90
|
if (!appcode) {
|
|
86
|
-
throw new BadRequestException('
|
|
91
|
+
throw new BadRequestException('Appcode is required');
|
|
87
92
|
}
|
|
88
93
|
|
|
89
94
|
return this.moduleAccessRepository.getAllModulesByLevel(
|
|
@@ -125,19 +130,21 @@ export class ModuleAccessService {
|
|
|
125
130
|
|
|
126
131
|
async getUserPermissions({
|
|
127
132
|
userId,
|
|
128
|
-
|
|
133
|
+
appcode,
|
|
129
134
|
level_type,
|
|
130
135
|
level_id,
|
|
136
|
+
enterprise_id,
|
|
131
137
|
}: {
|
|
132
138
|
userId: number;
|
|
133
|
-
|
|
139
|
+
appcode: string;
|
|
134
140
|
level_type: string;
|
|
135
141
|
level_id: number;
|
|
142
|
+
enterprise_id: number;
|
|
136
143
|
}) {
|
|
137
144
|
// Step 1: Resolve roles
|
|
138
145
|
const roleCodes = await this.menuRepository.resolveUserRoles(
|
|
139
146
|
userId,
|
|
140
|
-
|
|
147
|
+
appcode,
|
|
141
148
|
level_type,
|
|
142
149
|
level_id,
|
|
143
150
|
);
|
|
@@ -152,7 +159,7 @@ export class ModuleAccessService {
|
|
|
152
159
|
const allPermissions =
|
|
153
160
|
await this.moduleAccessRepository.getModuleAccessByRoles(
|
|
154
161
|
roleIds,
|
|
155
|
-
|
|
162
|
+
appcode,
|
|
156
163
|
);
|
|
157
164
|
|
|
158
165
|
// Step 3: If level_type is SCH, check school status using raw query
|
|
@@ -165,7 +172,12 @@ export class ModuleAccessService {
|
|
|
165
172
|
},
|
|
166
173
|
});
|
|
167
174
|
|
|
168
|
-
|
|
175
|
+
const resolveStatus = await this.listMasterService.getResolvedListCode(
|
|
176
|
+
STATUS_INACTIVE,
|
|
177
|
+
enterprise_id || 0,
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
if (!school || school.status === resolveStatus.id) {
|
|
169
181
|
// Return only VIEW permissions
|
|
170
182
|
return allPermissions.filter((perm) => perm.action === 'VIEW');
|
|
171
183
|
}
|
|
@@ -1,58 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEntity } from 'src/module/meta/entity/base-entity.entity';
|
|
2
|
+
import { Column, Entity } from 'typeorm';
|
|
2
3
|
|
|
3
4
|
@Entity({ name: 'frm_notification' })
|
|
4
|
-
export class NotificationData {
|
|
5
|
-
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
-
id: number;
|
|
7
|
-
|
|
8
|
-
@Column({ name: 'entity_type', type: 'varchar', length: 100, nullable: true })
|
|
9
|
-
entity_type: string;
|
|
10
|
-
|
|
11
|
-
@Column({ name: 'name', type: 'varchar', length: 100, nullable: true })
|
|
12
|
-
name: string;
|
|
13
|
-
|
|
14
|
-
@Column({ name: 'status', type: 'varchar', nullable: true, length: 100 })
|
|
15
|
-
status: string;
|
|
16
|
-
|
|
17
|
-
@Column({ name: 'parent_type', type: 'varchar', length: 100, nullable: true })
|
|
18
|
-
parent_type: string;
|
|
19
|
-
|
|
20
|
-
@Column({ name: 'parent_id', type: 'bigint', nullable: true })
|
|
21
|
-
parent_id: number;
|
|
22
|
-
|
|
23
|
-
@Column({ name: 'code', type: 'varchar', length: 100, nullable: true })
|
|
24
|
-
code: string;
|
|
25
|
-
|
|
26
|
-
@Column({ name: 'created_by', type: 'bigint', nullable: true })
|
|
27
|
-
created_by: number;
|
|
28
|
-
|
|
29
|
-
@Column({
|
|
30
|
-
name: 'created_date',
|
|
31
|
-
nullable: true,
|
|
32
|
-
})
|
|
33
|
-
created_date: Date;
|
|
34
|
-
|
|
35
|
-
@Column({ name: 'modified_by', type: 'bigint', nullable: true })
|
|
36
|
-
modified_by: number;
|
|
37
|
-
|
|
38
|
-
@Column({ name: 'modified_date', nullable: true })
|
|
39
|
-
modified_date: Date;
|
|
40
|
-
|
|
41
|
-
@Column({ name: 'enterprise_id', type: 'int', nullable: true })
|
|
42
|
-
enterprise_id: number;
|
|
43
|
-
|
|
44
|
-
@Column({ name: 'organization_id', type: 'int', nullable: true })
|
|
45
|
-
organization_id: number;
|
|
46
|
-
|
|
47
|
-
@Column({ name: 'appcode', type: 'varchar', length: 100, nullable: true })
|
|
48
|
-
appcode: string;
|
|
49
|
-
|
|
50
|
-
@Column({ name: 'level_id', type: 'varchar', length: 100, nullable: true })
|
|
51
|
-
level_id: string;
|
|
52
|
-
|
|
53
|
-
@Column({ name: 'level_type', type: 'varchar', length: 100, nullable: true })
|
|
54
|
-
level_type: string;
|
|
55
|
-
|
|
5
|
+
export class NotificationData extends BaseEntity {
|
|
56
6
|
@Column({ name: 'user_id', type: 'int', nullable: true })
|
|
57
7
|
user_id: number | null;
|
|
58
8
|
|
|
@@ -15,6 +15,7 @@ import { IcsMeetingModule } from '../ics/ics.module';
|
|
|
15
15
|
import { NotificationData } from './entity/notification.entity';
|
|
16
16
|
import { NotificationsController } from './controller/notification.controller';
|
|
17
17
|
import { NotificationsService } from './service/notification.service';
|
|
18
|
+
import { EntityModule } from '../meta/entity.module';
|
|
18
19
|
import { FirebaseAdminProvider } from './firebase-admin.config';
|
|
19
20
|
|
|
20
21
|
@Module({
|
|
@@ -48,6 +49,7 @@ import { FirebaseAdminProvider } from './firebase-admin.config';
|
|
|
48
49
|
AuthModule,
|
|
49
50
|
UserModule,
|
|
50
51
|
IcsMeetingModule,
|
|
52
|
+
EntityModule,
|
|
51
53
|
],
|
|
52
54
|
providers: [
|
|
53
55
|
OtpService,
|
|
@@ -10,6 +10,7 @@ import { ReflectionHelper } from 'src/utils/service/reflection-helper.service';
|
|
|
10
10
|
export class NotificationsService {
|
|
11
11
|
constructor(
|
|
12
12
|
private readonly entityManager: EntityManager,
|
|
13
|
+
private readonly mediaDataService: MediaDataService,
|
|
13
14
|
private readonly configService: ConfigService,
|
|
14
15
|
private readonly reflectionHelper: ReflectionHelper,
|
|
15
16
|
@Inject('FIREBASE_ADMIN') private readonly firebaseAdmin: typeof admin,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DataSource } from 'typeorm';
|
|
2
|
-
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { BadRequestException, Injectable } from '@nestjs/common';
|
|
3
3
|
import { ConfigService } from '@nestjs/config';
|
|
4
4
|
import { ClockIDGenService } from '../../../utils/service/clockIDGenUtil.service';
|
|
5
5
|
import { Otp } from '../entity/otp.entity';
|
|
@@ -16,8 +16,7 @@ export class OtpService {
|
|
|
16
16
|
private readonly loginService: LoginService,
|
|
17
17
|
private readonly emailService: EmailService,
|
|
18
18
|
private readonly dataSource: DataSource,
|
|
19
|
-
) {
|
|
20
|
-
}
|
|
19
|
+
) {}
|
|
21
20
|
|
|
22
21
|
VERIFY_OTP = this.configService.get('VERIFY_OTP') || 'true';
|
|
23
22
|
DEFAULT_OTP = this.configService.get('DEFAULT_OTP') || '123456';
|
|
@@ -22,7 +22,8 @@ export class LoginController {
|
|
|
22
22
|
constructor(
|
|
23
23
|
private loginService: LoginService,
|
|
24
24
|
private userSessionService: UserSessionService,
|
|
25
|
-
private configService: ConfigService
|
|
25
|
+
private configService: ConfigService,
|
|
26
|
+
private integrationService: IntegrationService,
|
|
26
27
|
) {}
|
|
27
28
|
|
|
28
29
|
@Post('login')
|
|
@@ -85,12 +86,12 @@ export class LoginController {
|
|
|
85
86
|
const actualState = state.replace('gmail_config:', '');
|
|
86
87
|
|
|
87
88
|
// Forward to communication service for Gmail config handling using already exchanged tokens
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
const result = await this.integrationService.handleGmailTokensCallback(
|
|
90
|
+
email,
|
|
91
|
+
googleAccessToken,
|
|
92
|
+
googleRefreshToken,
|
|
93
|
+
actualState,
|
|
94
|
+
);
|
|
94
95
|
|
|
95
96
|
return res.send(
|
|
96
97
|
`<html><body><script>
|
|
@@ -18,6 +18,15 @@ export class UserController {
|
|
|
18
18
|
@Inject('UserService') private readonly userService: UserService,
|
|
19
19
|
) {}
|
|
20
20
|
|
|
21
|
+
@Post('user/signup')
|
|
22
|
+
async signup(
|
|
23
|
+
@Body(new ValidationPipe()) createUserDto: CreateUserDto,
|
|
24
|
+
@Res() res: Response,
|
|
25
|
+
) {
|
|
26
|
+
const result = await this.userService.createEntity(createUserDto, null);
|
|
27
|
+
res.status(HttpStatus.OK).json(result);
|
|
28
|
+
}
|
|
29
|
+
|
|
21
30
|
@Post('check-email')
|
|
22
31
|
@HttpCode(HttpStatus.OK)
|
|
23
32
|
async checkEmail(@Body() body, @Res() res: Response) {
|