rez_core 6.5.46 → 6.5.50
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 -5
- package/dist/app.module.js.map +1 -1
- package/dist/core.module.js +38 -63
- 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 +2 -1
- 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 +101 -25
- 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/app-master.controller.js.map +1 -0
- 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 +13 -0
- package/dist/module/{app_master → meta}/entity/app-master.entity.js +12 -30
- package/dist/module/meta/entity/app-master.entity.js.map +1 -0
- 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 +14 -3
- package/dist/module/meta/entity.module.js.map +1 -1
- package/dist/module/{app_master → meta}/repository/app-master.repository.d.ts +2 -2
- package/dist/module/{app_master → meta}/repository/app-master.repository.js +4 -4
- package/dist/module/meta/repository/app-master.repository.js.map +1 -0
- package/dist/module/meta/service/app-master.service.js.map +1 -0
- 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 +5 -4
- package/dist/module/meta/service/entity-table.service.js +45 -24
- 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/module-access.controller.d.ts +4 -3
- package/dist/module/module/controller/module-access.controller.js +8 -13
- package/dist/module/module/controller/module-access.controller.js.map +1 -1
- package/dist/module/module/entity/menu.entity.d.ts +3 -6
- package/dist/module/module/entity/menu.entity.js +10 -19
- package/dist/module/module/entity/menu.entity.js.map +1 -1
- package/dist/module/module/entity/module-access.entity.d.ts +1 -15
- package/dist/module/module/entity/module-access.entity.js +3 -49
- package/dist/module/module/entity/module-access.entity.js.map +1 -1
- package/dist/module/module/entity/module-action.entity.d.ts +2 -4
- package/dist/module/module/entity/module-action.entity.js +6 -11
- 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 +3 -3
- package/dist/module/module/repository/menu.repository.js +27 -38
- 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 +48 -96
- package/dist/module/module/repository/module-access.repository.js.map +1 -1
- package/dist/module/module/service/menu.service.d.ts +4 -2
- package/dist/module/module/service/menu.service.js +10 -7
- package/dist/module/module/service/menu.service.js.map +1 -1
- package/dist/module/module/service/module-access.service.d.ts +10 -7
- package/dist/module/module/service/module-access.service.js +24 -22
- 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 +1 -0
- 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 -18
- package/dist/module/user/entity/role.entity.js +19 -64
- 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.d.ts +2 -0
- package/dist/module/user/entity/user-session.entity.js +20 -2
- package/dist/module/user/entity/user-session.entity.js.map +1 -1
- package/dist/module/user/entity/user.entity.d.ts +5 -17
- package/dist/module/user/entity/user.entity.js +15 -61
- package/dist/module/user/entity/user.entity.js.map +1 -1
- package/dist/module/user/repository/role.repository.d.ts +2 -7
- package/dist/module/user/repository/role.repository.js +8 -23
- 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 -5
- package/dist/module/user/repository/user.repository.js +7 -26
- 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 +40 -54
- 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 +4 -3
- package/dist/module/user/service/user-session.service.js +11 -10
- package/dist/module/user/service/user-session.service.js.map +1 -1
- package/dist/module/user/service/user.service.d.ts +22 -31
- package/dist/module/user/service/user.service.js +58 -56
- package/dist/module/user/service/user.service.js.map +1 -1
- package/dist/module/user/user.module.js +7 -2
- 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 +5 -3
- package/dist/table.config.js +3 -1
- package/dist/table.config.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/app.module.ts +5 -7
- package/src/core.module.ts +44 -58
- 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 +2 -1
- 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 +237 -51
- 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/{app_master → 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 +20 -6
- package/src/module/{app_master → meta}/repository/app-master.repository.ts +3 -3
- 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 +82 -68
- 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/module-access.controller.ts +9 -14
- package/src/module/module/entity/menu.entity.ts +10 -18
- package/src/module/module/entity/module-access.entity.ts +3 -40
- package/src/module/module/entity/module-action.entity.ts +6 -10
- 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 +29 -43
- package/src/module/module/repository/module-access.repository.ts +63 -111
- package/src/module/module/service/menu.service.ts +9 -7
- package/src/module/module/service/module-access.service.ts +34 -22
- 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 +3 -4
- 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 -59
- package/src/module/user/entity/user-role-mapping.entity.ts +3 -29
- package/src/module/user/entity/user-session.entity.ts +19 -3
- package/src/module/user/entity/user.entity.ts +13 -48
- package/src/module/user/repository/role.repository.ts +12 -32
- package/src/module/user/repository/user-role-mapping.repository.ts +1 -5
- package/src/module/user/repository/user.repository.ts +8 -36
- 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 +63 -64
- package/src/module/user/service/user-role-mapping.service.ts +1 -23
- package/src/module/user/service/user-session.service.ts +11 -14
- package/src/module/user/service/user.service.ts +93 -67
- package/src/module/user/user.module.ts +5 -4
- 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/src/table.config.ts +3 -1
- 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/app_master/app-master.module.d.ts +0 -2
- package/dist/module/app_master/app-master.module.js +0 -28
- package/dist/module/app_master/app-master.module.js.map +0 -1
- package/dist/module/app_master/controller/app-master.controller.js.map +0 -1
- package/dist/module/app_master/entity/app-master.entity.d.ts +0 -17
- package/dist/module/app_master/entity/app-master.entity.js.map +0 -1
- package/dist/module/app_master/repository/app-master.repository.js.map +0 -1
- package/dist/module/app_master/service/app-master.service.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/app_master/app-master.module.ts +0 -15
- 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
- /package/dist/module/{app_master → meta}/controller/app-master.controller.d.ts +0 -0
- /package/dist/module/{app_master → meta}/controller/app-master.controller.js +0 -0
- /package/dist/module/{app_master → meta}/service/app-master.service.d.ts +0 -0
- /package/dist/module/{app_master → meta}/service/app-master.service.js +0 -0
- /package/src/module/{app_master → meta}/controller/app-master.controller.ts +0 -0
- /package/src/module/{app_master → meta}/service/app-master.service.ts +0 -0
|
@@ -17,7 +17,7 @@ export class MenuRepository extends Repository<MenuData> {
|
|
|
17
17
|
super(MenuData, dataSource.createEntityManager());
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
async getUserRoles(userId: number,
|
|
20
|
+
async getUserRoles(userId: number, appcode: string): Promise<number[]> {
|
|
21
21
|
const userRoleMappingRepo =
|
|
22
22
|
this.reflectionHelper.getRepoService('UserRoleMapping');
|
|
23
23
|
|
|
@@ -26,7 +26,7 @@ export class MenuRepository extends Repository<MenuData> {
|
|
|
26
26
|
.innerJoin('sso_role', 'role', 'role.id = urm.role_id')
|
|
27
27
|
.select('urm.role_id', 'role_id')
|
|
28
28
|
.where('urm.user_id = :userId', { userId })
|
|
29
|
-
.andWhere('role.
|
|
29
|
+
.andWhere('role.appcode = :appcode', { appcode })
|
|
30
30
|
.getRawMany();
|
|
31
31
|
|
|
32
32
|
return roles.map((r) => r.role_id);
|
|
@@ -34,65 +34,61 @@ export class MenuRepository extends Repository<MenuData> {
|
|
|
34
34
|
|
|
35
35
|
async getAccessibleModules(
|
|
36
36
|
roleIds: number[],
|
|
37
|
-
|
|
38
|
-
): Promise<
|
|
37
|
+
appCode: string,
|
|
38
|
+
): Promise<string[]> {
|
|
39
|
+
const roleRepo = this.reflectionHelper.getRepoService('Role');
|
|
40
|
+
|
|
41
|
+
const roleCodes = await roleRepo
|
|
42
|
+
.createQueryBuilder('role')
|
|
43
|
+
.select('role.code', 'code')
|
|
44
|
+
.where('role.id IN (:...roleIds)', { roleIds })
|
|
45
|
+
.getRawMany();
|
|
39
46
|
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
code: appcode
|
|
44
|
-
}
|
|
45
|
-
});
|
|
47
|
+
const codes = roleCodes.map((r) => r.code);
|
|
48
|
+
|
|
49
|
+
if (codes.length === 0) return [];
|
|
46
50
|
|
|
47
51
|
const modules = await this.moduleAccessRepo
|
|
48
52
|
.createQueryBuilder('moduleAccess')
|
|
49
|
-
.select('moduleAccess.
|
|
50
|
-
.where('moduleAccess.
|
|
53
|
+
.select('moduleAccess.module_code')
|
|
54
|
+
.where('moduleAccess.role_code IN (:...codes)', { codes })
|
|
51
55
|
.andWhere('moduleAccess.access_flag > 0')
|
|
52
|
-
.andWhere('moduleAccess.
|
|
56
|
+
.andWhere('LOWER(moduleAccess.appcode) = LOWER(:appCode)', { appCode })
|
|
53
57
|
.getMany();
|
|
54
58
|
|
|
55
|
-
return Array.from(new Set(modules.map((module) => module.
|
|
59
|
+
return Array.from(new Set(modules.map((module) => module.module_code)));
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
/**
|
|
59
63
|
* ✅ FIXED: Use this.createQueryBuilder() instead of this.menuData.createQueryBuilder()
|
|
60
64
|
*/
|
|
61
65
|
async getMenuItems(
|
|
62
|
-
|
|
66
|
+
moduleCodes: string[],
|
|
63
67
|
appcode: string,
|
|
64
68
|
levelType: string,
|
|
65
69
|
) {
|
|
66
|
-
const appMasterRepo = this.reflectionHelper.getRepoService('AppMaster');
|
|
67
|
-
|
|
68
|
-
const appMaster = await appMasterRepo.findOne({
|
|
69
|
-
where: {
|
|
70
|
-
code: appcode
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
|
|
74
70
|
return await this.menuData
|
|
75
71
|
.createQueryBuilder('menu')
|
|
76
72
|
.leftJoin(
|
|
77
73
|
'sso_module',
|
|
78
74
|
'module',
|
|
79
75
|
`
|
|
80
|
-
menu.
|
|
81
|
-
AND menu.
|
|
76
|
+
menu.module_code = module.module_code
|
|
77
|
+
AND LOWER(menu.appcode) = LOWER(module.appcode)
|
|
82
78
|
AND menu.level_type = module.level_type
|
|
83
79
|
`,
|
|
84
80
|
)
|
|
85
|
-
.where('menu.
|
|
86
|
-
.andWhere('menu.
|
|
81
|
+
.where('menu.module_code IN (:...moduleCodes)', { moduleCodes })
|
|
82
|
+
.andWhere('LOWER(menu.appcode) = LOWER(:appcode)', { appcode })
|
|
87
83
|
.andWhere('menu.level_type = :levelType', { levelType })
|
|
88
84
|
.andWhere('menu.ui_visible = 1')
|
|
89
85
|
.select([
|
|
90
86
|
'menu.*',
|
|
91
|
-
'module.module_code AS module_code',
|
|
92
87
|
'module.component_name AS component',
|
|
93
88
|
'module.title AS title',
|
|
94
89
|
'module.entity_type AS entity_type',
|
|
95
|
-
'module.type AS type'
|
|
90
|
+
'module.type AS type',
|
|
91
|
+
'module.ui_config AS ui_config',
|
|
96
92
|
])
|
|
97
93
|
.getRawMany();
|
|
98
94
|
}
|
|
@@ -103,14 +99,6 @@ export class MenuRepository extends Repository<MenuData> {
|
|
|
103
99
|
levelType: string,
|
|
104
100
|
levelId: number,
|
|
105
101
|
): Promise<number[]> {
|
|
106
|
-
const appMasterRepo = this.reflectionHelper.getRepoService('AppMaster');
|
|
107
|
-
|
|
108
|
-
const appMaster = await appMasterRepo.findOne({
|
|
109
|
-
where: {
|
|
110
|
-
code: appcode
|
|
111
|
-
}
|
|
112
|
-
})
|
|
113
|
-
|
|
114
102
|
const repo = this.reflectionHelper.getRepoService('UserRoleMapping');
|
|
115
103
|
|
|
116
104
|
if (userId) {
|
|
@@ -126,9 +114,7 @@ export class MenuRepository extends Repository<MenuData> {
|
|
|
126
114
|
const getUserUrm = await repo.findOne({
|
|
127
115
|
where: {
|
|
128
116
|
user_id: userId,
|
|
129
|
-
|
|
130
|
-
code: appcode
|
|
131
|
-
},
|
|
117
|
+
appcode: appcode,
|
|
132
118
|
},
|
|
133
119
|
});
|
|
134
120
|
|
|
@@ -149,7 +135,7 @@ export class MenuRepository extends Repository<MenuData> {
|
|
|
149
135
|
.where('urm.user_id = :userId', { userId: userId })
|
|
150
136
|
.andWhere('urm.level_type = :levelType', { levelType })
|
|
151
137
|
.andWhere('urm.level_id = :levelId', { levelId: levelId })
|
|
152
|
-
.andWhere('role.
|
|
138
|
+
.andWhere('role.appcode = :appcode', { appcode })
|
|
153
139
|
.getRawMany();
|
|
154
140
|
|
|
155
141
|
if (roles.length) return roles.map((r) => r.urm_role_id);
|
|
@@ -174,7 +160,7 @@ export class MenuRepository extends Repository<MenuData> {
|
|
|
174
160
|
.where('urm.user_id = :userId', { userId })
|
|
175
161
|
.andWhere('urm.level_type = :levelType', { levelType: 'BRN' })
|
|
176
162
|
.andWhere('urm.level_id = :levelId', { levelId: brandId })
|
|
177
|
-
.andWhere('role.
|
|
163
|
+
.andWhere('role.appcode = :appcode', { appcode })
|
|
178
164
|
.getRawMany();
|
|
179
165
|
|
|
180
166
|
if (roles.length) return roles.map((r) => r.urm_role_id);
|
|
@@ -188,7 +174,7 @@ export class MenuRepository extends Repository<MenuData> {
|
|
|
188
174
|
.where('urm.user_id = :userId', { userId })
|
|
189
175
|
.andWhere('urm.level_type = :levelType', { levelType: 'ORG' })
|
|
190
176
|
.andWhere('urm.level_id = :levelId', { levelId: orgId })
|
|
191
|
-
.andWhere('role.
|
|
177
|
+
.andWhere('role.appcode = :appcode', { appcode })
|
|
192
178
|
.getRawMany();
|
|
193
179
|
|
|
194
180
|
if (roles.length) return roles.map((r) => r.urm_role_id);
|
|
@@ -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,26 +175,26 @@ 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
|
|
217
185
|
const actionMap = allActions.reduce(
|
|
218
186
|
(acc, action) => {
|
|
219
|
-
if (!acc[action.
|
|
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.
|
|
227
|
-
acc[action.
|
|
194
|
+
if (action.action_type === 'VIEW') {
|
|
195
|
+
acc[action.module_code].unshift(actionItem); // ➕ Add VIEW at start
|
|
228
196
|
} else {
|
|
229
|
-
acc[action.
|
|
197
|
+
acc[action.module_code].push(actionItem); // ➕ Add others at end
|
|
230
198
|
}
|
|
231
199
|
|
|
232
200
|
return acc;
|
|
@@ -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,18 +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
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
|
-
|
|
351
|
-
code: appcode,
|
|
352
|
-
},
|
|
313
|
+
appcode,
|
|
353
314
|
},
|
|
354
315
|
select: ['id', 'code'],
|
|
355
316
|
});
|
|
@@ -357,27 +318,18 @@ export class ModuleAccessRepository {
|
|
|
357
318
|
const roleCodes = roles.map((r) => r.code);
|
|
358
319
|
if (!roleCodes.length) return [];
|
|
359
320
|
|
|
360
|
-
const appMasterRepo = this.reflectionHelper.getRepoService('AppMaster');
|
|
361
|
-
const appMaster = await appMasterRepo.findOne({
|
|
362
|
-
where: {
|
|
363
|
-
code: appcode,
|
|
364
|
-
},
|
|
365
|
-
});
|
|
366
|
-
|
|
367
321
|
// Step 2: Fetch full access data
|
|
368
322
|
const accessRecords = await this.moduleAccessRepo
|
|
369
323
|
.createQueryBuilder('access')
|
|
370
324
|
.select([
|
|
371
|
-
'access.
|
|
372
|
-
'm.module_code AS module_code',
|
|
325
|
+
'access.module_code AS module_code',
|
|
373
326
|
'access.action_type AS action_type',
|
|
374
327
|
'access.access_flag AS access_flag',
|
|
375
328
|
'access.level_type AS level_type',
|
|
376
329
|
'access.appcode AS appcode',
|
|
377
330
|
])
|
|
378
|
-
.innerJoin('sso_module', 'm', 'm.id = access.module_id')
|
|
379
331
|
.where('access.role_code IN (:...roleCodes)', { roleCodes })
|
|
380
|
-
.andWhere('access.
|
|
332
|
+
.andWhere('access.appcode = :appcode', { appcode })
|
|
381
333
|
.getRawMany();
|
|
382
334
|
|
|
383
335
|
// Step 3: Format output
|
|
@@ -1,13 +1,15 @@
|
|
|
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.
|
|
@@ -28,15 +30,15 @@ export class MenuService {
|
|
|
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
|
-
|
|
41
|
+
moduleCodes,
|
|
40
42
|
appcode,
|
|
41
43
|
levelType,
|
|
42
44
|
);
|
|
@@ -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(
|
|
@@ -128,11 +133,13 @@ export class ModuleAccessService {
|
|
|
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(
|
|
@@ -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
|
}
|