@rockster/core 0.0.2 → 0.1.0
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/access/access.module.d.ts +11 -0
- package/access/access.module.js +56 -0
- package/access/access.module.js.map +1 -0
- package/access/constants.d.ts +2 -0
- package/access/constants.js +6 -0
- package/access/constants.js.map +1 -0
- package/access/controllers/controllers.d.ts +7 -0
- package/access/controllers/controllers.js +18 -0
- package/access/controllers/controllers.js.map +1 -0
- package/access/controllers/scope-access-profile.controller.d.ts +17 -0
- package/access/controllers/scope-access-profile.controller.js +111 -0
- package/access/controllers/scope-access-profile.controller.js.map +1 -0
- package/access/controllers/scope-group-user.controller.d.ts +20 -0
- package/access/controllers/scope-group-user.controller.js +132 -0
- package/access/controllers/scope-group-user.controller.js.map +1 -0
- package/access/controllers/scope-group.controller.d.ts +22 -0
- package/access/controllers/scope-group.controller.js +177 -0
- package/access/controllers/scope-group.controller.js.map +1 -0
- package/access/controllers/scope-key.controller.d.ts +7 -0
- package/access/controllers/scope-key.controller.js +45 -0
- package/access/controllers/scope-key.controller.js.map +1 -0
- package/access/controllers/scope-owner.controller.d.ts +9 -0
- package/access/controllers/scope-owner.controller.js +80 -0
- package/access/controllers/scope-owner.controller.js.map +1 -0
- package/access/controllers/scope-user.controller.d.ts +14 -0
- package/access/controllers/scope-user.controller.js +109 -0
- package/access/controllers/scope-user.controller.js.map +1 -0
- package/access/decorators/context-params.decorator.d.ts +2 -0
- package/access/decorators/context-params.decorator.js +13 -0
- package/access/decorators/context-params.decorator.js.map +1 -0
- package/access/decorators/index.d.ts +2 -0
- package/access/decorators/index.js +19 -0
- package/access/decorators/index.js.map +1 -0
- package/access/decorators/scope-context-id-resolver.decorator.d.ts +10 -0
- package/access/decorators/scope-context-id-resolver.decorator.js +22 -0
- package/access/decorators/scope-context-id-resolver.decorator.js.map +1 -0
- package/access/entities/entities.d.ts +8 -0
- package/access/entities/entities.js +22 -0
- package/access/entities/entities.js.map +1 -0
- package/access/entities/index.d.ts +7 -0
- package/access/entities/index.js +24 -0
- package/access/entities/index.js.map +1 -0
- package/access/entities/scope-access-profile-key.d.ts +6 -0
- package/access/entities/scope-access-profile-key.js +40 -0
- package/access/entities/scope-access-profile-key.js.map +1 -0
- package/access/entities/scope-access-profile.d.ts +6 -0
- package/access/entities/scope-access-profile.js +37 -0
- package/access/entities/scope-access-profile.js.map +1 -0
- package/access/entities/scope-access.d.ts +9 -0
- package/access/entities/scope-access.js +58 -0
- package/access/entities/scope-access.js.map +1 -0
- package/access/entities/scope-group-user.d.ts +7 -0
- package/access/entities/scope-group-user.js +47 -0
- package/access/entities/scope-group-user.js.map +1 -0
- package/access/entities/scope-group.d.ts +12 -0
- package/access/entities/scope-group.js +72 -0
- package/access/entities/scope-group.js.map +1 -0
- package/access/entities/scope-key.d.ts +5 -0
- package/access/entities/scope-key.js +35 -0
- package/access/entities/scope-key.js.map +1 -0
- package/access/entities/scope-owner.d.ts +7 -0
- package/access/entities/scope-owner.js +45 -0
- package/access/entities/scope-owner.js.map +1 -0
- package/access/env.d.ts +10 -0
- package/access/env.js +10 -0
- package/access/env.js.map +1 -0
- package/access/functions/assert-context-admin-access.d.ts +15 -0
- package/access/functions/assert-context-admin-access.js +62 -0
- package/access/functions/assert-context-admin-access.js.map +1 -0
- package/access/functions/assert-master-or-owner.d.ts +9 -0
- package/access/functions/assert-master-or-owner.js +40 -0
- package/access/functions/assert-master-or-owner.js.map +1 -0
- package/access/functions/assert-scope-action-access.d.ts +32 -0
- package/access/functions/assert-scope-action-access.js +189 -0
- package/access/functions/assert-scope-action-access.js.map +1 -0
- package/access/functions/build-scope-resolver-initial-data.d.ts +4 -0
- package/access/functions/build-scope-resolver-initial-data.js +17 -0
- package/access/functions/build-scope-resolver-initial-data.js.map +1 -0
- package/access/functions/describe-action-scope.d.ts +9 -0
- package/access/functions/describe-action-scope.js +27 -0
- package/access/functions/describe-action-scope.js.map +1 -0
- package/access/functions/get-context-id-service.d.ts +1 -0
- package/access/functions/get-context-id-service.js +8 -0
- package/access/functions/get-context-id-service.js.map +1 -0
- package/access/functions/get-is-owner.d.ts +1 -0
- package/access/functions/get-is-owner.js +8 -0
- package/access/functions/get-is-owner.js.map +1 -0
- package/access/functions/get-user-keys.d.ts +2 -0
- package/access/functions/get-user-keys.js +10 -0
- package/access/functions/get-user-keys.js.map +1 -0
- package/access/functions/index.d.ts +8 -0
- package/access/functions/index.js +25 -0
- package/access/functions/index.js.map +1 -0
- package/access/functions/init-scope-service-executors.d.ts +3 -0
- package/access/functions/init-scope-service-executors.js +38 -0
- package/access/functions/init-scope-service-executors.js.map +1 -0
- package/access/functions/normalize-scope-keys.d.ts +4 -0
- package/access/functions/normalize-scope-keys.js +17 -0
- package/access/functions/normalize-scope-keys.js.map +1 -0
- package/access/functions/register-scope.d.ts +19 -0
- package/access/functions/register-scope.js +94 -0
- package/access/functions/register-scope.js.map +1 -0
- package/access/functions/resolve-scope-context-id.d.ts +9 -0
- package/access/functions/resolve-scope-context-id.js +71 -0
- package/access/functions/resolve-scope-context-id.js.map +1 -0
- package/access/functions/warn-if-public.d.ts +12 -0
- package/access/functions/warn-if-public.js +20 -0
- package/access/functions/warn-if-public.js.map +1 -0
- package/access/index.d.ts +7 -0
- package/access/index.js +24 -0
- package/access/index.js.map +1 -0
- package/access/interfaces/index.d.ts +3 -0
- package/access/interfaces/index.js +20 -0
- package/access/interfaces/index.js.map +1 -0
- package/access/interfaces/resolve-scope-context-id.d.ts +21 -0
- package/access/interfaces/resolve-scope-context-id.js +3 -0
- package/access/interfaces/resolve-scope-context-id.js.map +1 -0
- package/access/interfaces/scope-service-registry.d.ts +21 -0
- package/access/interfaces/scope-service-registry.js +3 -0
- package/access/interfaces/scope-service-registry.js.map +1 -0
- package/access/interfaces/scope-service.d.ts +11 -0
- package/{database/interfaces/protector.js → access/interfaces/scope-service.js} +1 -1
- package/access/interfaces/scope-service.js.map +1 -0
- package/access/models/scope-access-profile-keys-update.d.ts +5 -0
- package/access/models/scope-access-profile-keys-update.js +27 -0
- package/access/models/scope-access-profile-keys-update.js.map +1 -0
- package/access/models/scope-context.d.ts +4 -0
- package/access/models/scope-context.js +27 -0
- package/access/models/scope-context.js.map +1 -0
- package/access/models/scope-group-apply-access-profile.d.ts +6 -0
- package/access/models/scope-group-apply-access-profile.js +32 -0
- package/access/models/scope-group-apply-access-profile.js.map +1 -0
- package/access/models/scope-keys-update.d.ts +7 -0
- package/access/models/scope-keys-update.js +38 -0
- package/access/models/scope-keys-update.js.map +1 -0
- package/access/models/scope-owner.d.ts +5 -0
- package/access/models/scope-owner.js +32 -0
- package/access/models/scope-owner.js.map +1 -0
- package/access/models/scope-user-mapped.d.ts +9 -0
- package/access/models/scope-user-mapped.js +48 -0
- package/access/models/scope-user-mapped.js.map +1 -0
- package/access/models/scope-user.d.ts +9 -0
- package/access/models/scope-user.js +51 -0
- package/access/models/scope-user.js.map +1 -0
- package/access/queries/scope-access-profile.query.d.ts +1 -0
- package/access/queries/scope-access-profile.query.js +10 -0
- package/access/queries/scope-access-profile.query.js.map +1 -0
- package/access/queries/scope-group-user.query.d.ts +1 -0
- package/access/queries/scope-group-user.query.js +26 -0
- package/access/queries/scope-group-user.query.js.map +1 -0
- package/access/queries/scope-group.query.d.ts +1 -0
- package/access/queries/scope-group.query.js +19 -0
- package/access/queries/scope-group.query.js.map +1 -0
- package/access/services/index.d.ts +7 -0
- package/access/services/index.js +24 -0
- package/access/services/index.js.map +1 -0
- package/access/services/scope-access-profile.service.d.ts +13 -0
- package/access/services/scope-access-profile.service.js +75 -0
- package/access/services/scope-access-profile.service.js.map +1 -0
- package/access/services/scope-access.service.d.ts +11 -0
- package/access/services/scope-access.service.js +89 -0
- package/access/services/scope-access.service.js.map +1 -0
- package/access/services/scope-group-user.service.d.ts +8 -0
- package/access/services/scope-group-user.service.js +49 -0
- package/access/services/scope-group-user.service.js.map +1 -0
- package/access/services/scope-group.service.d.ts +17 -0
- package/access/services/scope-group.service.js +75 -0
- package/access/services/scope-group.service.js.map +1 -0
- package/access/services/scope-key.service.d.ts +9 -0
- package/access/services/scope-key.service.js +52 -0
- package/access/services/scope-key.service.js.map +1 -0
- package/access/services/scope-owner.service.d.ts +10 -0
- package/access/services/scope-owner.service.js +60 -0
- package/access/services/scope-owner.service.js.map +1 -0
- package/access/services/scope-service.d.ts +10 -0
- package/access/services/scope-service.js +52 -0
- package/access/services/scope-service.js.map +1 -0
- package/command/functions/execute-post.js +5 -7
- package/command/functions/execute-post.js.map +1 -1
- package/command/services/post-action-builder.js +21 -17
- package/command/services/post-action-builder.js.map +1 -1
- package/command/services/remove-action-builder.js +32 -22
- package/command/services/remove-action-builder.js.map +1 -1
- package/common/entities/base-entity.js +2 -0
- package/common/entities/base-entity.js.map +1 -1
- package/common/interfaces/enum/object-type.d.ts +2 -1
- package/common/interfaces/enum/object-type.js +1 -0
- package/common/interfaces/enum/object-type.js.map +1 -1
- package/controllers/constants/controller-transaction.d.ts +2 -0
- package/controllers/constants/controller-transaction.js +6 -0
- package/controllers/constants/controller-transaction.js.map +1 -0
- package/controllers/controller.controller.d.ts +1 -1
- package/controllers/controller.controller.js +4 -4
- package/controllers/controller.controller.js.map +1 -1
- package/controllers/decorators/controller.decorator.js +8 -0
- package/controllers/decorators/controller.decorator.js.map +1 -1
- package/controllers/decorators/index.d.ts +1 -0
- package/controllers/decorators/index.js +1 -0
- package/controllers/decorators/index.js.map +1 -1
- package/controllers/decorators/transaction.decorator.d.ts +7 -0
- package/controllers/decorators/transaction.decorator.js +23 -0
- package/controllers/decorators/transaction.decorator.js.map +1 -0
- package/controllers/interfaces/controller-object.d.ts +1 -0
- package/controllers/interfaces/controller-options.d.ts +1 -0
- package/controllers/interfaces/controller-property.d.ts +9 -0
- package/controllers/services/default-action-builder.js +14 -0
- package/controllers/services/default-action-builder.js.map +1 -1
- package/controllers/services/restful-action-builder.js +25 -1
- package/controllers/services/restful-action-builder.js.map +1 -1
- package/core/contexts/request-context.d.ts +5 -0
- package/core/contexts/request-context.js +6 -0
- package/core/contexts/request-context.js.map +1 -0
- package/core/core.controller.d.ts +1 -0
- package/core/core.controller.js +15 -2
- package/core/core.controller.js.map +1 -1
- package/core/functions/create-interceptor.js +2 -2
- package/core/functions/create-interceptor.js.map +1 -1
- package/core/functions/resolve-action-transactional.d.ts +3 -0
- package/core/functions/resolve-action-transactional.js +10 -0
- package/core/functions/resolve-action-transactional.js.map +1 -0
- package/core/interfaces/action-def.d.ts +2 -5
- package/core/interfaces/action-docs.d.ts +15 -0
- package/core/interfaces/action-handle.d.ts +5 -0
- package/core/interfaces/action-handle.js +3 -0
- package/core/interfaces/action-handle.js.map +1 -0
- package/core/interfaces/core-options.d.ts +1 -0
- package/core/interfaces/interceptor.d.ts +1 -1
- package/core/interfaces/object.d.ts +3 -2
- package/core/interfaces/request-context.d.ts +7 -2
- package/core/services/request-executor.d.ts +8 -0
- package/core/services/request-executor.js +88 -0
- package/core/services/request-executor.js.map +1 -1
- package/core/services/request-router.js +5 -4
- package/core/services/request-router.js.map +1 -1
- package/database/database.controller.d.ts +1 -3
- package/database/database.controller.js +1 -5
- package/database/database.controller.js.map +1 -1
- package/database/decorators/entity.decorator.d.ts +3 -1
- package/database/decorators/entity.decorator.js +14 -5
- package/database/decorators/entity.decorator.js.map +1 -1
- package/database/decorators/external-column.decorator.d.ts +17 -0
- package/database/decorators/external-column.decorator.js +30 -0
- package/database/decorators/external-column.decorator.js.map +1 -0
- package/database/decorators/index.d.ts +1 -0
- package/database/decorators/index.js +1 -0
- package/database/decorators/index.js.map +1 -1
- package/database/decorators/protect-entity.decorator.d.ts +1 -0
- package/database/decorators/protect-entity.decorator.js +2 -3
- package/database/decorators/protect-entity.decorator.js.map +1 -1
- package/database/decorators/protected-entity.decorator.d.ts +1 -0
- package/database/decorators/protected-entity.decorator.js +2 -16
- package/database/decorators/protected-entity.decorator.js.map +1 -1
- package/database/decorators/relation.decorator.d.ts +2 -2
- package/database/decorators/relation.decorator.js.map +1 -1
- package/database/extensions/select-query-builder.d.ts +1 -5
- package/database/extensions/select-query-builder.js.map +1 -1
- package/database/functions/find-relation.d.ts +2 -1
- package/database/functions/find-relation.js +3 -3
- package/database/functions/find-relation.js.map +1 -1
- package/database/functions/generate-entity-id.d.ts +2 -0
- package/database/functions/{generate-id.js → generate-entity-id.js} +3 -3
- package/database/functions/generate-entity-id.js.map +1 -0
- package/database/functions/get-relations.d.ts +1 -1
- package/database/functions/inject-repository-handle.js +4 -3
- package/database/functions/inject-repository-handle.js.map +1 -1
- package/database/functions/use-transaction.d.ts +1 -0
- package/database/functions/use-transaction.js +2 -6
- package/database/functions/use-transaction.js.map +1 -1
- package/database/interfaces/entity-dto-object.d.ts +7 -0
- package/database/interfaces/entity-dto-object.js +3 -0
- package/database/interfaces/entity-dto-object.js.map +1 -0
- package/database/interfaces/entity-object.d.ts +0 -6
- package/database/interfaces/entity-property.d.ts +12 -0
- package/database/interfaces/index.d.ts +0 -1
- package/database/interfaces/index.js +0 -1
- package/database/interfaces/index.js.map +1 -1
- package/database/interfaces/path.d.ts +6 -2
- package/database/interfaces/repository.d.ts +8 -8
- package/database/interfaces/virtual-select.d.ts +4 -0
- package/database/interfaces/virtual-select.js +3 -0
- package/database/interfaces/virtual-select.js.map +1 -0
- package/database/services/repository.service.d.ts +1 -1
- package/database/services/repository.service.js +3 -6
- package/database/services/repository.service.js.map +1 -1
- package/docs/docs.module.js +3 -1
- package/docs/docs.module.js.map +1 -1
- package/docs/migrations/1747584000000-CreateDocsTables.d.ts +5 -0
- package/docs/migrations/1747584000000-CreateDocsTables.js +90 -0
- package/docs/migrations/1747584000000-CreateDocsTables.js.map +1 -0
- package/docs/migrations/migrations.d.ts +2 -0
- package/docs/migrations/migrations.js +8 -0
- package/docs/migrations/migrations.js.map +1 -0
- package/docs/queries/docs-controller-action.query.d.ts +1 -1
- package/docs/queries/docs-controller.query.d.ts +1 -1
- package/docs/queries/docs-model.query.d.ts +1 -1
- package/docs/queries/docs-model.query.js +1 -1
- package/docs/queries/docs-model.query.js.map +1 -1
- package/docs/queries/docs-version.query.d.ts +1 -1
- package/docs/services/docs-version.service.js +6 -3
- package/docs/services/docs-version.service.js.map +1 -1
- package/forms/queries/form.query.d.ts +1 -1
- package/forms/queries/property.query.d.ts +1 -1
- package/global.d.ts +2 -0
- package/global.js +2 -1
- package/global.js.map +1 -1
- package/http/http.controller.d.ts +2 -0
- package/http/http.controller.js +3 -2
- package/http/http.controller.js.map +1 -1
- package/index.d.ts +5 -2
- package/index.js +4 -7
- package/index.js.map +1 -1
- package/jobs/jobs.controller.d.ts +2 -0
- package/jobs/jobs.controller.js +22 -16
- package/jobs/jobs.controller.js.map +1 -1
- package/package.json +70 -69
- package/query/functions/add-join.js +8 -16
- package/query/functions/add-join.js.map +1 -1
- package/query/functions/collect-external-column-owners.d.ts +10 -0
- package/query/functions/collect-external-column-owners.js +100 -0
- package/query/functions/collect-external-column-owners.js.map +1 -0
- package/query/functions/create-query-builder.js +47 -28
- package/query/functions/create-query-builder.js.map +1 -1
- package/query/functions/create-query-cache-hash.d.ts +16 -0
- package/query/functions/create-query-cache-hash.js +70 -0
- package/query/functions/create-query-cache-hash.js.map +1 -0
- package/query/functions/create-query.d.ts +8 -3
- package/query/functions/create-query.js +12 -9
- package/query/functions/create-query.js.map +1 -1
- package/query/functions/describe-query-filter.js +3 -2
- package/query/functions/describe-query-filter.js.map +1 -1
- package/query/functions/execute-query.js +89 -9
- package/query/functions/execute-query.js.map +1 -1
- package/query/functions/expand-select-with-external-dependencies.d.ts +9 -0
- package/query/functions/expand-select-with-external-dependencies.js +34 -0
- package/query/functions/expand-select-with-external-dependencies.js.map +1 -0
- package/query/functions/external-column-owner-path.d.ts +5 -0
- package/query/functions/external-column-owner-path.js +18 -0
- package/query/functions/external-column-owner-path.js.map +1 -0
- package/query/functions/get-entity-object-class.d.ts +2 -0
- package/query/functions/get-entity-object-class.js +12 -0
- package/query/functions/get-entity-object-class.js.map +1 -0
- package/query/functions/get-native-select.js +3 -0
- package/query/functions/get-native-select.js.map +1 -1
- package/query/functions/load-properties.d.ts +20 -2
- package/query/functions/load-properties.js +190 -40
- package/query/functions/load-properties.js.map +1 -1
- package/query/functions/map-query-property-to-column-name.js +1 -1
- package/query/functions/map-query-property-to-column-name.js.map +1 -1
- package/query/functions/query-structure-cache.d.ts +24 -0
- package/query/functions/query-structure-cache.js +66 -0
- package/query/functions/query-structure-cache.js.map +1 -0
- package/query/interfaces/query.d.ts +44 -1
- package/query/services/query-action-builder.d.ts +4 -1
- package/query/services/query-action-builder.js +26 -12
- package/query/services/query-action-builder.js.map +1 -1
- package/remote-logs/dtos/index.d.ts +2 -0
- package/remote-logs/dtos/index.js +19 -0
- package/remote-logs/dtos/index.js.map +1 -0
- package/remote-logs/dtos/remote-log-hooks.dto.d.ts +72 -0
- package/remote-logs/dtos/remote-log-hooks.dto.js +280 -0
- package/remote-logs/dtos/remote-log-hooks.dto.js.map +1 -0
- package/remote-logs/dtos/remote-log-search.dto.d.ts +34 -0
- package/remote-logs/dtos/remote-log-search.dto.js +146 -0
- package/remote-logs/dtos/remote-log-search.dto.js.map +1 -0
- package/remote-logs/environment.d.ts +4 -0
- package/remote-logs/environment.js +5 -0
- package/remote-logs/environment.js.map +1 -0
- package/remote-logs/index.d.ts +3 -0
- package/remote-logs/index.js +20 -0
- package/remote-logs/index.js.map +1 -0
- package/remote-logs/interfaces/index.d.ts +1 -0
- package/remote-logs/interfaces/index.js +18 -0
- package/remote-logs/interfaces/index.js.map +1 -0
- package/remote-logs/interfaces/remote-logs-module-options.d.ts +8 -0
- package/remote-logs/interfaces/remote-logs-module-options.js +3 -0
- package/remote-logs/interfaces/remote-logs-module-options.js.map +1 -0
- package/remote-logs/remote-logs-hooks.controller.d.ts +60 -0
- package/remote-logs/remote-logs-hooks.controller.js +331 -0
- package/remote-logs/remote-logs-hooks.controller.js.map +1 -0
- package/remote-logs/remote-logs.controller.d.ts +8 -0
- package/remote-logs/remote-logs.controller.js +41 -0
- package/remote-logs/remote-logs.controller.js.map +1 -0
- package/remote-logs/remote-logs.module.d.ts +12 -0
- package/remote-logs/remote-logs.module.js +107 -0
- package/remote-logs/remote-logs.module.js.map +1 -0
- package/remote-logs/services/opensearch.service.d.ts +13 -0
- package/remote-logs/services/opensearch.service.js +167 -0
- package/remote-logs/services/opensearch.service.js.map +1 -0
- package/security/auth.controller.js +4 -4
- package/security/auth.controller.js.map +1 -1
- package/security/env.js.map +1 -1
- package/security/functions/add-protected.d.ts +2 -2
- package/security/functions/add-protected.js +8 -5
- package/security/functions/add-protected.js.map +1 -1
- package/security/functions/create-authentication-interceptor.d.ts +44 -0
- package/security/functions/create-authentication-interceptor.js +114 -0
- package/security/functions/create-authentication-interceptor.js.map +1 -0
- package/security/functions/find-auth-context.d.ts +1 -2
- package/security/functions/find-auth-context.js +6 -11
- package/security/functions/find-auth-context.js.map +1 -1
- package/security/index.d.ts +1 -0
- package/security/index.js +1 -0
- package/security/index.js.map +1 -1
- package/security/interfaces/authorization-schema.d.ts +3 -1
- package/security/requests/security.request.js +1 -1
- package/security/requests/security.request.js.map +1 -1
- package/security/services/authorization.service.d.ts +5 -3
- package/security/services/authorization.service.js +56 -37
- package/security/services/authorization.service.js.map +1 -1
- package/storage/services/routes.service.js +1 -1
- package/storage/services/routes.service.js.map +1 -1
- package/tasks/constants.d.ts +3 -0
- package/tasks/constants.js +2 -1
- package/tasks/constants.js.map +1 -1
- package/tasks/controllers/task.controller.d.ts +3 -2
- package/tasks/controllers/task.controller.js +11 -40
- package/tasks/controllers/task.controller.js.map +1 -1
- package/tasks/decorators/index.d.ts +1 -0
- package/tasks/decorators/index.js +1 -0
- package/tasks/decorators/index.js.map +1 -1
- package/tasks/decorators/task-payload.decorator.d.ts +1 -0
- package/tasks/decorators/task-payload.decorator.js +12 -0
- package/tasks/decorators/task-payload.decorator.js.map +1 -0
- package/tasks/decorators/task.decorator.js +6 -2
- package/tasks/decorators/task.decorator.js.map +1 -1
- package/tasks/functions/compile-all-task-post-hooks.d.ts +1 -0
- package/tasks/functions/compile-all-task-post-hooks.js +27 -0
- package/tasks/functions/compile-all-task-post-hooks.js.map +1 -0
- package/tasks/functions/compile-task-hook-handle.d.ts +6 -0
- package/tasks/functions/compile-task-hook-handle.js +67 -0
- package/tasks/functions/compile-task-hook-handle.js.map +1 -0
- package/tasks/functions/create-task-hook.d.ts +9 -0
- package/tasks/functions/create-task-hook.js +13 -0
- package/tasks/functions/create-task-hook.js.map +1 -0
- package/tasks/functions/{create-task-message-receptor.d.ts → create-task-message-post.d.ts} +1 -1
- package/tasks/functions/{create-task-message-receptor.js → create-task-message-post.js} +10 -3
- package/tasks/functions/create-task-message-post.js.map +1 -0
- package/tasks/functions/register-task-post-hook-interceptors.d.ts +3 -0
- package/tasks/functions/register-task-post-hook-interceptors.js +86 -0
- package/tasks/functions/register-task-post-hook-interceptors.js.map +1 -0
- package/tasks/functions/run-task-post-hooks.d.ts +11 -0
- package/tasks/functions/run-task-post-hooks.js +18 -0
- package/tasks/functions/run-task-post-hooks.js.map +1 -0
- package/tasks/functions/task-message-operations.d.ts +18 -0
- package/tasks/functions/task-message-operations.js +100 -0
- package/tasks/functions/task-message-operations.js.map +1 -0
- package/tasks/functions/validate-task-payload.d.ts +2 -0
- package/tasks/functions/validate-task-payload.js +19 -0
- package/tasks/functions/validate-task-payload.js.map +1 -0
- package/tasks/hook-constants.d.ts +2 -0
- package/tasks/hook-constants.js +6 -0
- package/tasks/hook-constants.js.map +1 -0
- package/tasks/index.d.ts +3 -0
- package/tasks/index.js +3 -0
- package/tasks/index.js.map +1 -1
- package/tasks/interfaces/compiled-task-post-hooks.d.ts +17 -0
- package/tasks/interfaces/compiled-task-post-hooks.js +3 -0
- package/tasks/interfaces/compiled-task-post-hooks.js.map +1 -0
- package/tasks/interfaces/index.d.ts +3 -0
- package/tasks/interfaces/index.js +3 -0
- package/tasks/interfaces/index.js.map +1 -1
- package/tasks/interfaces/task-hook.d.ts +16 -0
- package/tasks/interfaces/task-hook.js +8 -0
- package/tasks/interfaces/task-hook.js.map +1 -0
- package/tasks/interfaces/task-object.d.ts +6 -2
- package/tasks/interfaces/task-post-hook.d.ts +2 -0
- package/tasks/interfaces/task-post-hook.js +3 -0
- package/tasks/interfaces/task-post-hook.js.map +1 -0
- package/tasks/interfaces/task-post-intercept.d.ts +1 -8
- package/tasks/interfaces/task-runner.d.ts +2 -1
- package/tasks/interfaces/task-settings.d.ts +7 -0
- package/tasks/services/task-runner.service.d.ts +24 -3
- package/tasks/services/task-runner.service.js +68 -28
- package/tasks/services/task-runner.service.js.map +1 -1
- package/translations/controllers/translation.controller.js +12 -9
- package/translations/controllers/translation.controller.js.map +1 -1
- package/translations/functions/create-translation-values.js +2 -5
- package/translations/functions/create-translation-values.js.map +1 -1
- package/translations/migrations/1723760669185-CreateTranslationTables.js +3 -3
- package/translations/migrations/1723760669185-CreateTranslationTables.js.map +1 -1
- package/translations/queries/translation-config.query.d.ts +1 -1
- package/translations/queries/translation-values.query.d.ts +1 -1
- package/translations/queries/translation-values.query.js +1 -1
- package/translations/queries/translation-values.query.js.map +1 -1
- package/translations/translations.controller.d.ts +1 -1
- package/translations/translations.controller.js +4 -4
- package/translations/translations.controller.js.map +1 -1
- package/database/functions/generate-id.d.ts +0 -2
- package/database/functions/generate-id.js.map +0 -1
- package/database/functions/use-protector.d.ts +0 -2
- package/database/functions/use-protector.js +0 -11
- package/database/functions/use-protector.js.map +0 -1
- package/database/interfaces/protector.d.ts +0 -51
- package/database/interfaces/protector.js.map +0 -1
- package/database/services/protect-builder.d.ts +0 -59
- package/database/services/protect-builder.js +0 -524
- package/database/services/protect-builder.js.map +0 -1
- package/security/functions/add-protect.d.ts +0 -2
- package/security/functions/add-protect.js +0 -11
- package/security/functions/add-protect.js.map +0 -1
- package/tasks/functions/create-task-message-receptor.js.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RepositoryService } from "../../database/services/repository.service";
|
|
2
|
+
import { IScopeAccess } from "@rockster/common/access";
|
|
3
|
+
import { Repository } from "../../database/interfaces/repository";
|
|
4
|
+
export declare class ScopeAccessService extends RepositoryService<IScopeAccess> {
|
|
5
|
+
protected repository: Repository<IScopeAccess>;
|
|
6
|
+
protected noCtxQuery: string;
|
|
7
|
+
protected withCtxQuery: string;
|
|
8
|
+
getAllUserKeys(userId: string): Promise<string[]>;
|
|
9
|
+
getKeysWithCtx(contextId: string, userId: string): Promise<string[]>;
|
|
10
|
+
updateKeys(type: 'group' | 'user', contextName: string, contextId: string, targetId: string, keys: string[]): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScopeAccessService = void 0;
|
|
13
|
+
const class_injector_1 = require("@rockster/class-injector");
|
|
14
|
+
const repository_service_1 = require("../../database/services/repository.service");
|
|
15
|
+
const inject_repository_decorator_1 = require("../../database/decorators/inject-repository.decorator");
|
|
16
|
+
const scope_access_1 = require("../entities/scope-access");
|
|
17
|
+
const generate_entity_id_1 = require("../../database/functions/generate-entity-id");
|
|
18
|
+
const normalize_scope_keys_1 = require("../functions/normalize-scope-keys");
|
|
19
|
+
let ScopeAccessService = class ScopeAccessService extends repository_service_1.RepositoryService {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.noCtxQuery = `
|
|
23
|
+
select distinct sa.key
|
|
24
|
+
from scope_access sa
|
|
25
|
+
where sa.key is not null
|
|
26
|
+
and sa.user_id = $1
|
|
27
|
+
|
|
28
|
+
union
|
|
29
|
+
|
|
30
|
+
select distinct sa.key
|
|
31
|
+
from scope_access sa
|
|
32
|
+
join scope_group_user sgu
|
|
33
|
+
on sgu.group_id = sa.group_id
|
|
34
|
+
where sa.key is not null
|
|
35
|
+
and sgu.user_id = $1;
|
|
36
|
+
`;
|
|
37
|
+
this.withCtxQuery = `
|
|
38
|
+
select distinct sa.key
|
|
39
|
+
from scope_access sa
|
|
40
|
+
where sa.key is not null
|
|
41
|
+
and sa.user_id = $1
|
|
42
|
+
and sa.context_id = $2
|
|
43
|
+
|
|
44
|
+
union
|
|
45
|
+
|
|
46
|
+
select distinct sa.key
|
|
47
|
+
from scope_access sa
|
|
48
|
+
join scope_group_user sgu
|
|
49
|
+
on sgu.group_id = sa.group_id
|
|
50
|
+
where sa.key is not null
|
|
51
|
+
and sgu.user_id = $1
|
|
52
|
+
and sa.context_id = $2;
|
|
53
|
+
`;
|
|
54
|
+
}
|
|
55
|
+
async getAllUserKeys(userId) {
|
|
56
|
+
const rows = await this.repository.query(this.noCtxQuery, [userId]);
|
|
57
|
+
return rows.map(r => r.k);
|
|
58
|
+
}
|
|
59
|
+
async getKeysWithCtx(contextId, userId) {
|
|
60
|
+
const rows = await this.repository.query(this.withCtxQuery, [userId, contextId]);
|
|
61
|
+
return rows.map(row => row.key);
|
|
62
|
+
}
|
|
63
|
+
async updateKeys(type, contextName, contextId, targetId, keys) {
|
|
64
|
+
const keyName = type === 'group' ? 'groupId' : 'userId';
|
|
65
|
+
await this.repository.delete({
|
|
66
|
+
[keyName]: targetId,
|
|
67
|
+
contextId,
|
|
68
|
+
contextName
|
|
69
|
+
});
|
|
70
|
+
const validKeys = (0, normalize_scope_keys_1.normalizeScopeKeys)(keys);
|
|
71
|
+
const accessKeys = validKeys.map(key => ({
|
|
72
|
+
id: (0, generate_entity_id_1.generateEntityId)(scope_access_1.ScopeAccess),
|
|
73
|
+
[keyName]: targetId,
|
|
74
|
+
contextName: contextName,
|
|
75
|
+
contextId: contextId,
|
|
76
|
+
key: key
|
|
77
|
+
}));
|
|
78
|
+
await this.repository.save(accessKeys);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.ScopeAccessService = ScopeAccessService;
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, inject_repository_decorator_1.InjectRepository)(() => scope_access_1.ScopeAccess),
|
|
84
|
+
__metadata("design:type", Object)
|
|
85
|
+
], ScopeAccessService.prototype, "repository", void 0);
|
|
86
|
+
exports.ScopeAccessService = ScopeAccessService = __decorate([
|
|
87
|
+
(0, class_injector_1.Injectable)()
|
|
88
|
+
], ScopeAccessService);
|
|
89
|
+
//# sourceMappingURL=scope-access.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-access.service.js","sourceRoot":"./","sources":["access/services/scope-access.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAsD;AACtD,mFAA+E;AAE/E,uGAAyF;AAEzF,2DAAuD;AACvD,oFAA+E;AAC/E,4EAAuE;AAGhE,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,sCAA+B;IAAhE;;QAKM,eAAU,GAAG;;;;;;;;;;;;;;IActB,CAAC;QAEQ,iBAAY,GAAG;;;;;;;;;;;;;;;;IAgBxB,CAAC;IA+CL,CAAC;IA7CE,KAAK,CAAC,cAAc,CAAC,MAAc;QAChC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CACrC,IAAI,CAAC,UAAU,EACf,CAAC,MAAM,CAAC,CACV,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAa,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,MAAc;QACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CACrC,IAAI,CAAC,YAAY,EACjB,CAAC,MAAM,EAAE,SAAS,CAAC,CACrB,CAAC;QAEF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAa,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,UAAU,CACb,IAAsB,EACtB,WAAmB,EACnB,SAAiB,EACjB,QAAgB,EAChB,IAAc;QAEd,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAExD,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC1B,CAAC,OAAO,CAAC,EAAE,QAAQ;YACnB,SAAS;YACT,WAAW;SACb,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAA,yCAAkB,EAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,EAAE,EAAE,IAAA,qCAAgB,EAAC,0BAAW,CAAC;YACjC,CAAC,OAAO,CAAC,EAAE,QAAQ;YACnB,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,GAAG;SACO,CAAA,CAAC,CAAC;QAEpB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CACH,CAAA;AApFY,gDAAkB;AAGlB;IADT,IAAA,8CAAgB,EAAC,GAAG,EAAE,CAAC,0BAAW,CAAC;;sDACW;6BAHrC,kBAAkB;IAD9B,IAAA,2BAAU,GAAE;GACA,kBAAkB,CAoF9B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RepositoryService } from "../../database/services/repository.service";
|
|
2
|
+
import { IScopeGroupUser } from "@rockster/common/access";
|
|
3
|
+
import { Repository } from "../../database/interfaces/repository";
|
|
4
|
+
export declare class ScopeGroupUserService extends RepositoryService<IScopeGroupUser> {
|
|
5
|
+
protected repository: Repository<IScopeGroupUser>;
|
|
6
|
+
addIfNotExists(groupId: string, userId: string): Promise<IScopeGroupUser>;
|
|
7
|
+
byContext(userId: string, contextName: string, contextId?: string): Promise<IScopeGroupUser[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScopeGroupUserService = void 0;
|
|
13
|
+
const class_injector_1 = require("@rockster/class-injector");
|
|
14
|
+
const repository_service_1 = require("../../database/services/repository.service");
|
|
15
|
+
const inject_repository_decorator_1 = require("../../database/decorators/inject-repository.decorator");
|
|
16
|
+
const scope_group_user_1 = require("../entities/scope-group-user");
|
|
17
|
+
const generate_entity_id_1 = require("../../database/functions/generate-entity-id");
|
|
18
|
+
const scope_group_1 = require("../entities/scope-group");
|
|
19
|
+
let ScopeGroupUserService = class ScopeGroupUserService extends repository_service_1.RepositoryService {
|
|
20
|
+
async addIfNotExists(groupId, userId) {
|
|
21
|
+
const groupUser = await this.repository.findOneBy({ groupId, userId });
|
|
22
|
+
if (groupUser)
|
|
23
|
+
return groupUser;
|
|
24
|
+
return this.repository.save({
|
|
25
|
+
id: (0, generate_entity_id_1.generateEntityId)(scope_group_user_1.ScopeGroupUser),
|
|
26
|
+
groupId: groupId,
|
|
27
|
+
userId: userId
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async byContext(userId, contextName, contextId) {
|
|
31
|
+
return this
|
|
32
|
+
.repository
|
|
33
|
+
.createQueryBuilder('scopeGroupUser')
|
|
34
|
+
.leftJoin(scope_group_1.ScopeGroup, 'scopeGroup', '"scopeGroup".id = "scopeGroupUser".group_id')
|
|
35
|
+
.where(`"scopeGroup".context_name = '${contextName}'
|
|
36
|
+
AND "scopeGroupUser".user_id = '${userId}'
|
|
37
|
+
${!contextId ? '' : `AND "scopeGroup".context_id = '${contextId}'`}`)
|
|
38
|
+
.getMany();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.ScopeGroupUserService = ScopeGroupUserService;
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, inject_repository_decorator_1.InjectRepository)(() => scope_group_user_1.ScopeGroupUser),
|
|
44
|
+
__metadata("design:type", Object)
|
|
45
|
+
], ScopeGroupUserService.prototype, "repository", void 0);
|
|
46
|
+
exports.ScopeGroupUserService = ScopeGroupUserService = __decorate([
|
|
47
|
+
(0, class_injector_1.Injectable)()
|
|
48
|
+
], ScopeGroupUserService);
|
|
49
|
+
//# sourceMappingURL=scope-group-user.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-group-user.service.js","sourceRoot":"./","sources":["access/services/scope-group-user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAsD;AACtD,mFAA+E;AAE/E,uGAAyF;AAEzF,mEAA8D;AAC9D,oFAA+E;AAC/E,yDAAqD;AAG9C,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,sCAAkC;IAK1E,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,MAAc;QACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACzB,EAAE,EAAE,IAAA,qCAAgB,EAAC,iCAAc,CAAC;YACpC,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;SAChB,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,WAAmB,EAAE,SAAkB;QACpE,OAAO,IAAI;aACP,UAAU;aACV,kBAAkB,CAAC,gBAAgB,CAAC;aACpC,QAAQ,CACN,wBAAU,EACV,YAAY,EACZ,6CAA6C,CAC/C;aACA,KAAK,CAAC,gCAAgC,WAAW;8CACb,MAAM;cACtC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,SAAS,GAAG,EAAE,CAAC;aACvE,OAAO,EAAE,CAAC;IACjB,CAAC;CACH,CAAA;AA7BY,sDAAqB;AAGrB;IADT,IAAA,8CAAgB,EAAC,GAAG,EAAE,CAAC,iCAAc,CAAC;;yDACW;gCAHxC,qBAAqB;IADjC,IAAA,2BAAU,GAAE;GACA,qBAAqB,CA6BjC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { RepositoryService } from "../../database/services/repository.service";
|
|
2
|
+
import { IScopeGroup } from "@rockster/common/access";
|
|
3
|
+
import { Repository } from "../../database/interfaces/repository";
|
|
4
|
+
import { ScopeAccessProfileService } from "./scope-access-profile.service";
|
|
5
|
+
import { ScopeAccessService } from "./scope-access.service";
|
|
6
|
+
export declare class ScopeGroupService extends RepositoryService<IScopeGroup> {
|
|
7
|
+
protected readonly scopeAccessProfileService: ScopeAccessProfileService;
|
|
8
|
+
protected readonly scopeAccessService: ScopeAccessService;
|
|
9
|
+
protected repository: Repository<IScopeGroup>;
|
|
10
|
+
constructor(scopeAccessProfileService: ScopeAccessProfileService, scopeAccessService: ScopeAccessService);
|
|
11
|
+
/**
|
|
12
|
+
* Applies the group's linked access profile keys for the given context
|
|
13
|
+
* (filtered by scope_key.context_name), merging with existing group keys.
|
|
14
|
+
*/
|
|
15
|
+
applyAccessProfileToGroupContext(groupId: string, contextName: string, contextId: string): Promise<string[]>;
|
|
16
|
+
getUserGroups(userId: string, contextName: string, contextId?: string): Promise<IScopeGroup[]>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScopeGroupService = void 0;
|
|
13
|
+
const class_injector_1 = require("@rockster/class-injector");
|
|
14
|
+
const repository_service_1 = require("../../database/services/repository.service");
|
|
15
|
+
const inject_repository_decorator_1 = require("../../database/decorators/inject-repository.decorator");
|
|
16
|
+
const scope_group_1 = require("../entities/scope-group");
|
|
17
|
+
const scope_group_user_1 = require("../entities/scope-group-user");
|
|
18
|
+
const scope_access_profile_service_1 = require("./scope-access-profile.service");
|
|
19
|
+
const scope_access_service_1 = require("./scope-access.service");
|
|
20
|
+
const normalize_scope_keys_1 = require("../functions/normalize-scope-keys");
|
|
21
|
+
let ScopeGroupService = class ScopeGroupService extends repository_service_1.RepositoryService {
|
|
22
|
+
constructor(scopeAccessProfileService, scopeAccessService) {
|
|
23
|
+
super();
|
|
24
|
+
this.scopeAccessProfileService = scopeAccessProfileService;
|
|
25
|
+
this.scopeAccessService = scopeAccessService;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Applies the group's linked access profile keys for the given context
|
|
29
|
+
* (filtered by scope_key.context_name), merging with existing group keys.
|
|
30
|
+
*/
|
|
31
|
+
async applyAccessProfileToGroupContext(groupId, contextName, contextId) {
|
|
32
|
+
const group = await this.repository.findOneBy({ id: groupId });
|
|
33
|
+
if (!group?.scopeAccessProfileId) {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
const profileKeys = await this.scopeAccessProfileService.getKeysForContext(group.scopeAccessProfileId, contextName);
|
|
37
|
+
if (!profileKeys.length) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
const existingRows = await this.scopeAccessService.getMany({
|
|
41
|
+
where: {
|
|
42
|
+
groupId,
|
|
43
|
+
contextName,
|
|
44
|
+
contextId,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
const existingKeys = existingRows
|
|
48
|
+
.map((row) => row.key)
|
|
49
|
+
.filter((key) => Boolean(key));
|
|
50
|
+
const mergedKeys = (0, normalize_scope_keys_1.normalizeScopeKeys)([...existingKeys, ...profileKeys]);
|
|
51
|
+
await this.scopeAccessService.updateKeys("group", contextName, contextId, groupId, mergedKeys);
|
|
52
|
+
return mergedKeys;
|
|
53
|
+
}
|
|
54
|
+
async getUserGroups(userId, contextName, contextId) {
|
|
55
|
+
return this
|
|
56
|
+
.repository
|
|
57
|
+
.createQueryBuilder('scopeGroup')
|
|
58
|
+
.leftJoin(scope_group_user_1.ScopeGroupUser, 'scopeGroupUser', '"scopeGroup".id = "scopeGroupUser".group_id')
|
|
59
|
+
.where(`"scopeGroupUser".user_id = '${userId}'
|
|
60
|
+
AND "scopeGroup".context_name = '${contextName}'
|
|
61
|
+
${!contextId ? '' : `AND "scopeGroup".context_id = '${contextId}'`}`)
|
|
62
|
+
.getMany();
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
exports.ScopeGroupService = ScopeGroupService;
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, inject_repository_decorator_1.InjectRepository)(() => scope_group_1.ScopeGroup),
|
|
68
|
+
__metadata("design:type", Object)
|
|
69
|
+
], ScopeGroupService.prototype, "repository", void 0);
|
|
70
|
+
exports.ScopeGroupService = ScopeGroupService = __decorate([
|
|
71
|
+
(0, class_injector_1.Injectable)(),
|
|
72
|
+
__metadata("design:paramtypes", [scope_access_profile_service_1.ScopeAccessProfileService,
|
|
73
|
+
scope_access_service_1.ScopeAccessService])
|
|
74
|
+
], ScopeGroupService);
|
|
75
|
+
//# sourceMappingURL=scope-group.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-group.service.js","sourceRoot":"./","sources":["access/services/scope-group.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAsD;AACtD,mFAA+E;AAE/E,uGAAyF;AAEzF,yDAAqD;AACrD,mEAA8D;AAC9D,iFAA2E;AAC3E,iEAA4D;AAC5D,4EAAuE;AAGhE,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,sCAA8B;IAKlE,YACsB,yBAAoD,EACpD,kBAAsC;QAEzD,KAAK,EAAE,CAAC;QAHW,8BAAyB,GAAzB,yBAAyB,CAA2B;QACpD,uBAAkB,GAAlB,kBAAkB,CAAoB;IAG5D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gCAAgC,CACnC,OAAe,EACf,WAAmB,EACnB,SAAiB;QAEjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,EAAE,oBAAoB,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC;QACb,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CACvE,KAAK,CAAC,oBAAoB,EAC1B,WAAW,CACb,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACb,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE;gBACJ,OAAO;gBACP,WAAW;gBACX,SAAS;aACX;SACH,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,YAAY;aAC7B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;aACrB,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAA,yCAAkB,EAAC,CAAC,GAAG,YAAY,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;QAEzE,MAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,CACrC,OAAO,EACP,WAAW,EACX,SAAS,EACT,OAAO,EACP,UAAU,CACZ,CAAC;QAEF,OAAO,UAAU,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,WAAmB,EAAE,SAAkB;QACxE,OAAO,IAAI;aACP,UAAU;aACV,kBAAkB,CAAC,YAAY,CAAC;aAChC,QAAQ,CACN,iCAAc,EACd,gBAAgB,EAChB,6CAA6C,CAC/C;aACA,KAAK,CAAC,+BAA+B,MAAM;+CACN,WAAW;cAC5C,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,SAAS,GAAG,EAAE,CAAC;aACvE,OAAO,EAAE,CAAC;IACjB,CAAC;CACH,CAAA;AA1EY,8CAAiB;AAGjB;IADT,IAAA,8CAAgB,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;;qDACW;4BAHpC,iBAAiB;IAD7B,IAAA,2BAAU,GAAE;qCAOuC,wDAAyB;QAChC,yCAAkB;GAPlD,iBAAiB,CA0E7B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ScopeKey } from "../entities/scope-key";
|
|
2
|
+
import { RepositoryService } from "../../database/services/repository.service";
|
|
3
|
+
import { Repository } from "../../database/interfaces/repository";
|
|
4
|
+
import { Logger } from "@rockster/logger";
|
|
5
|
+
export declare class ScopeKeyService extends RepositoryService<ScopeKey> {
|
|
6
|
+
protected logger: Logger;
|
|
7
|
+
protected repository: Repository<ScopeKey>;
|
|
8
|
+
updateAll(): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScopeKeyService = void 0;
|
|
13
|
+
const class_injector_1 = require("@rockster/class-injector");
|
|
14
|
+
const scope_key_1 = require("../entities/scope-key");
|
|
15
|
+
const repository_service_1 = require("../../database/services/repository.service");
|
|
16
|
+
const inject_repository_decorator_1 = require("../../database/decorators/inject-repository.decorator");
|
|
17
|
+
const env_1 = require("../env");
|
|
18
|
+
const logger_1 = require("@rockster/logger");
|
|
19
|
+
let ScopeKeyService = class ScopeKeyService extends repository_service_1.RepositoryService {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.logger = new logger_1.Logger('Access');
|
|
23
|
+
}
|
|
24
|
+
async updateAll() {
|
|
25
|
+
const scopes = env_1.env.scopesKeys.entries();
|
|
26
|
+
for (const [name, keys] of scopes) {
|
|
27
|
+
for (const key of keys) {
|
|
28
|
+
const exists = await this
|
|
29
|
+
.repository
|
|
30
|
+
.findOneBy({
|
|
31
|
+
contextName: name,
|
|
32
|
+
name: key.name
|
|
33
|
+
});
|
|
34
|
+
if (!exists)
|
|
35
|
+
await this.repository.save({
|
|
36
|
+
contextName: name,
|
|
37
|
+
name: key.name
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
this.logger.log(`Scope [${name}] keys successfully updated`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.ScopeKeyService = ScopeKeyService;
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, inject_repository_decorator_1.InjectRepository)(() => scope_key_1.ScopeKey),
|
|
47
|
+
__metadata("design:type", Object)
|
|
48
|
+
], ScopeKeyService.prototype, "repository", void 0);
|
|
49
|
+
exports.ScopeKeyService = ScopeKeyService = __decorate([
|
|
50
|
+
(0, class_injector_1.Injectable)()
|
|
51
|
+
], ScopeKeyService);
|
|
52
|
+
//# sourceMappingURL=scope-key.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-key.service.js","sourceRoot":"./","sources":["access/services/scope-key.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAsD;AACtD,qDAAiD;AACjD,mFAA+E;AAC/E,uGAAyF;AAEzF,gCAA6B;AAC7B,6CAA0C;AAGnC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,sCAA2B;IAAzD;;QAEM,WAAM,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,CAAC;IA8B3C,CAAC;IAzBE,KAAK,CAAC,SAAS;QACZ,MAAM,MAAM,GAAG,SAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAExC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;YAEjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBAEtB,MAAM,MAAM,GAAG,MAAM,IAAI;qBACrB,UAAU;qBACV,SAAS,CAAC;oBACR,WAAW,EAAE,IAAI;oBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;iBAChB,CAAC,CAAC;gBAEN,IAAI,CAAC,MAAM;oBAER,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;wBACxB,WAAW,EAAE,IAAI;wBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;qBAChB,CAAC,CAAA;YACR,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,6BAA6B,CAAC,CAAC;QAChE,CAAC;IACJ,CAAC;CACH,CAAA;AAhCY,0CAAe;AAKf;IADT,IAAA,8CAAgB,EAAC,GAAG,EAAE,CAAC,oBAAQ,CAAC;;mDACU;0BALjC,eAAe;IAD3B,IAAA,2BAAU,GAAE;GACA,eAAe,CAgC3B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RepositoryService } from "../../database/services/repository.service";
|
|
2
|
+
import { IScopeOwner } from "@rockster/common/access";
|
|
3
|
+
import { Repository } from "../../database/interfaces/repository";
|
|
4
|
+
export declare class ScopeOwnerService extends RepositoryService<IScopeOwner> {
|
|
5
|
+
protected repository: Repository<IScopeOwner>;
|
|
6
|
+
getIsOwner(contextName: string, userId: string, contextId?: string): Promise<boolean>;
|
|
7
|
+
findOwnerUserIds(contextName: string, contextId: string | undefined, userIds: string[]): Promise<Set<string>>;
|
|
8
|
+
/** True when the user owns any context (used to gate global IAM resources). */
|
|
9
|
+
getHasAnyOwnership(userId: string): Promise<boolean>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScopeOwnerService = void 0;
|
|
13
|
+
const class_injector_1 = require("@rockster/class-injector");
|
|
14
|
+
const repository_service_1 = require("../../database/services/repository.service");
|
|
15
|
+
const inject_repository_decorator_1 = require("../../database/decorators/inject-repository.decorator");
|
|
16
|
+
const scope_owner_1 = require("../entities/scope-owner");
|
|
17
|
+
const typeorm_1 = require("typeorm");
|
|
18
|
+
let ScopeOwnerService = class ScopeOwnerService extends repository_service_1.RepositoryService {
|
|
19
|
+
async getIsOwner(contextName, userId, contextId) {
|
|
20
|
+
const normalizedContextId = contextId == null || contextId === "" ? undefined : contextId;
|
|
21
|
+
const exists = await this.repository.findOneBy({
|
|
22
|
+
contextId: normalizedContextId,
|
|
23
|
+
contextName: contextName,
|
|
24
|
+
userId: userId
|
|
25
|
+
});
|
|
26
|
+
return !!exists;
|
|
27
|
+
}
|
|
28
|
+
async findOwnerUserIds(contextName, contextId, userIds) {
|
|
29
|
+
if (!userIds.length) {
|
|
30
|
+
return new Set();
|
|
31
|
+
}
|
|
32
|
+
const normalizedContextId = contextId == null || contextId === "" ? undefined : contextId;
|
|
33
|
+
const where = {
|
|
34
|
+
contextName,
|
|
35
|
+
userId: (0, typeorm_1.In)(userIds),
|
|
36
|
+
};
|
|
37
|
+
if (normalizedContextId != null) {
|
|
38
|
+
where.contextId = normalizedContextId;
|
|
39
|
+
}
|
|
40
|
+
const owners = await this.repository.find({
|
|
41
|
+
where,
|
|
42
|
+
select: ['userId'],
|
|
43
|
+
});
|
|
44
|
+
return new Set(owners.map((owner) => owner.userId));
|
|
45
|
+
}
|
|
46
|
+
/** True when the user owns any context (used to gate global IAM resources). */
|
|
47
|
+
async getHasAnyOwnership(userId) {
|
|
48
|
+
const exists = await this.repository.findOneBy({ userId });
|
|
49
|
+
return !!exists;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.ScopeOwnerService = ScopeOwnerService;
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, inject_repository_decorator_1.InjectRepository)(() => scope_owner_1.ScopeOwner),
|
|
55
|
+
__metadata("design:type", Object)
|
|
56
|
+
], ScopeOwnerService.prototype, "repository", void 0);
|
|
57
|
+
exports.ScopeOwnerService = ScopeOwnerService = __decorate([
|
|
58
|
+
(0, class_injector_1.Injectable)()
|
|
59
|
+
], ScopeOwnerService);
|
|
60
|
+
//# sourceMappingURL=scope-owner.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-owner.service.js","sourceRoot":"./","sources":["access/services/scope-owner.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAsD;AACtD,mFAA+E;AAE/E,uGAAyF;AAEzF,yDAAqD;AACrD,qCAA6B;AAGtB,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,sCAA8B;IAKlE,KAAK,CAAC,UAAU,CACb,WAAmB,EACnB,MAAc,EACd,SAAkB;QAElB,MAAM,mBAAmB,GACtB,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAC5C,SAAS,EAAE,mBAAmB;YAC9B,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,MAAM,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACnB,WAAmB,EACnB,SAA6B,EAC7B,OAAiB;QAEjB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,GAAG,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,mBAAmB,GACtB,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjE,MAAM,KAAK,GAA4B;YACpC,WAAW;YACX,MAAM,EAAE,IAAA,YAAE,EAAC,OAAO,CAAC;SACrB,CAAC;QAEF,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC;YAC/B,KAAK,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACzC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACvC,KAAK;YACL,MAAM,EAAE,CAAC,QAAQ,CAAC;SACpB,CAAC,CAAC;QAEH,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,CAAC,MAAM,CAAC;IACnB,CAAC;CACH,CAAA;AAxDY,8CAAiB;AAGjB;IADT,IAAA,8CAAgB,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;;qDACW;4BAHpC,iBAAiB;IAD7B,IAAA,2BAAU,GAAE;GACA,iBAAiB,CAwD7B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ScopeGroupUserService } from "./scope-group-user.service";
|
|
2
|
+
import { ScopeAccessService } from "./scope-access.service";
|
|
3
|
+
import { ScopeOwnerService } from "./scope-owner.service";
|
|
4
|
+
export declare class ScopeService {
|
|
5
|
+
protected scopeGroupUserService: ScopeGroupUserService;
|
|
6
|
+
protected scopeAccessService: ScopeAccessService;
|
|
7
|
+
protected scopeOwnerService: ScopeOwnerService;
|
|
8
|
+
constructor(scopeGroupUserService: ScopeGroupUserService, scopeAccessService: ScopeAccessService, scopeOwnerService: ScopeOwnerService);
|
|
9
|
+
removeUser(userId: string, contextName: string, contextId?: string): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ScopeService = void 0;
|
|
13
|
+
const class_injector_1 = require("@rockster/class-injector");
|
|
14
|
+
const scope_group_user_service_1 = require("./scope-group-user.service");
|
|
15
|
+
const scope_access_service_1 = require("./scope-access.service");
|
|
16
|
+
const scope_owner_service_1 = require("./scope-owner.service");
|
|
17
|
+
let ScopeService = class ScopeService {
|
|
18
|
+
constructor(scopeGroupUserService, scopeAccessService, scopeOwnerService) {
|
|
19
|
+
this.scopeGroupUserService = scopeGroupUserService;
|
|
20
|
+
this.scopeAccessService = scopeAccessService;
|
|
21
|
+
this.scopeOwnerService = scopeOwnerService;
|
|
22
|
+
}
|
|
23
|
+
async removeUser(userId, contextName, contextId) {
|
|
24
|
+
const groups = await this
|
|
25
|
+
.scopeGroupUserService
|
|
26
|
+
.byContext(userId, contextName, contextId);
|
|
27
|
+
await Promise.all(groups.map(async (group) => {
|
|
28
|
+
await this.scopeGroupUserService.removeBy({
|
|
29
|
+
groupId: group.groupId,
|
|
30
|
+
userId: group.userId
|
|
31
|
+
});
|
|
32
|
+
}));
|
|
33
|
+
await this.scopeOwnerService.removeBy({
|
|
34
|
+
contextName: contextName,
|
|
35
|
+
contextId: contextId,
|
|
36
|
+
userId: userId
|
|
37
|
+
});
|
|
38
|
+
await this.scopeAccessService.removeBy({
|
|
39
|
+
userId: userId,
|
|
40
|
+
contextId: contextId,
|
|
41
|
+
contextName: contextName
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.ScopeService = ScopeService;
|
|
46
|
+
exports.ScopeService = ScopeService = __decorate([
|
|
47
|
+
(0, class_injector_1.Injectable)(),
|
|
48
|
+
__metadata("design:paramtypes", [scope_group_user_service_1.ScopeGroupUserService,
|
|
49
|
+
scope_access_service_1.ScopeAccessService,
|
|
50
|
+
scope_owner_service_1.ScopeOwnerService])
|
|
51
|
+
], ScopeService);
|
|
52
|
+
//# sourceMappingURL=scope-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-service.js","sourceRoot":"./","sources":["access/services/scope-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAAsD;AACtD,yEAAmE;AACnE,iEAA4D;AAC5D,+DAA0D;AAGnD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEtB,YACa,qBAA4C,EAC5C,kBAAsC,EACtC,iBAAoC;QAFpC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAC9C,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,WAAmB,EAAE,SAAkB;QACrE,MAAM,MAAM,GAAG,MAAM,IAAI;aACrB,qBAAqB;aACrB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAE9C,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC1C,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;gBACvC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;aACtB,CAAC,CAAA;QACL,CAAC,CAAC,CAAC,CAAA;QAEH,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YACnC,WAAW,EAAE,WAAW;YACxB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACpC,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,WAAW;SAC1B,CAAC,CAAA;IACL,CAAC;CACH,CAAA;AAhCY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,2BAAU,GAAE;qCAI0B,gDAAqB;QACxB,yCAAkB;QACnB,uCAAiB;GALvC,YAAY,CAgCxB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.executePost = void 0;
|
|
7
4
|
const use_repository_1 = require("../../database/functions/use-repository");
|
|
8
5
|
const common_1 = require("@rockster/common");
|
|
9
|
-
const
|
|
6
|
+
const generate_entity_id_1 = require("../../database/functions/generate-entity-id");
|
|
10
7
|
const deep_merge_keep_undefined_1 = require("../utils/deep-merge-keep-undefined");
|
|
11
8
|
const transaction_context_1 = require("../../database/contexts/transaction-context");
|
|
12
9
|
const executePost = async (content) => {
|
|
@@ -17,11 +14,12 @@ const executePost = async (content) => {
|
|
|
17
14
|
const properties = core
|
|
18
15
|
.storage
|
|
19
16
|
.getProperties(content.target)
|
|
20
|
-
.filter((property) => !isNullOrEmpty(property.columnType)
|
|
21
|
-
|| property.isRelation)
|
|
17
|
+
.filter((property) => (!isNullOrEmpty(property.columnType)
|
|
18
|
+
|| property.isRelation)
|
|
19
|
+
&& !property.isExternal);
|
|
22
20
|
if (content.type === 'create') {
|
|
23
21
|
if (!content.data[content.idProperty])
|
|
24
|
-
(0,
|
|
22
|
+
content.data[content.idProperty] = (0, generate_entity_id_1.generateEntityId)(repository.target);
|
|
25
23
|
return repository.save(content.data);
|
|
26
24
|
}
|
|
27
25
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-post.js","sourceRoot":"./","sources":["command/functions/execute-post.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute-post.js","sourceRoot":"./","sources":["command/functions/execute-post.ts"],"names":[],"mappings":";;;AACA,4EAAwE;AACxE,6CAAmD;AACnD,oFAA+E;AAG/E,kFAA4E;AAC5E,qFAAsF;AAE/E,MAAM,WAAW,GAAG,KAAK,EAC7B,OAA6B,EAC9B,EAAE;IACD,MAAM,kBAAkB,GAAG,6CAAuB,CAAC,QAAQ,EAAE,CAAC;IAC9D,MAAM,UAAU,GAAG,kBAAkB,EAAE,aAAa;QACjD,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QAChE,CAAC,CAAC,IAAA,8BAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAG,IAAI;SACnB,OAAO;SACP,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7B,MAAM,CAAC,CAAC,QAAuC,EAAE,EAAE,CACjD,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;WACjC,QAAQ,CAAC,UAAU,CAAC;WACpB,CAAC,QAAQ,CAAC,UAAU,CACU,CAAC;IAExC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAA,qCAAgB,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAE1E,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,CAAC;SAAM,CAAC;QAEL,MAAM,MAAM,GAAG,MAAM,UAAU;aAC3B,OAAO,CAAC;YACN,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE;YAChD,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC5D,CAAC,CAAC;QAEN,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC,IAAI,CAAC;gBACpB,GAAG,OAAO,CAAC,IAAI;gBACf,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,OAAO;aACvC,CAAC,CAAC;QACN,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,wBAAe,CAAC;gBACvB,OAAO,EAAE,kBAAkB,OAAO,CAAC,OAAO,YAAY;aACxD,CAAC,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,kDAAsB,EAAS,MAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAE9E,MAAM,UAAU,CAAC,MAAM,CAAC;YACrB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,OAAO;SACvC,EAAE,MAAM,CAAC,CAAC;QAEX,OAAO,MAAM,CAAC;IACjB,CAAC;AACJ,CAAC,CAAA;AArDY,QAAA,WAAW,eAqDvB"}
|
|
@@ -11,10 +11,13 @@ const class_injector_1 = require("@rockster/class-injector");
|
|
|
11
11
|
const core_1 = require("../../core");
|
|
12
12
|
const class_pipe_1 = require("@rockster/class-pipe");
|
|
13
13
|
const interfaces_1 = require("../../controllers/interfaces");
|
|
14
|
+
const resolve_action_transactional_1 = require("../../core/functions/resolve-action-transactional");
|
|
14
15
|
const constants_1 = require("../constants");
|
|
15
16
|
const constants_2 = require("../../controllers/constants");
|
|
16
17
|
const database_1 = require("../../database");
|
|
17
|
-
const
|
|
18
|
+
const assert_scope_action_access_1 = require("../../access/functions/assert-scope-action-access");
|
|
19
|
+
const warn_if_public_1 = require("../../access/functions/warn-if-public");
|
|
20
|
+
const describe_action_scope_1 = require("../../access/functions/describe-action-scope");
|
|
18
21
|
const constants_3 = require("../../web-socket/constants");
|
|
19
22
|
const global_1 = require("../../global");
|
|
20
23
|
const docs_1 = require("@rockster/common/docs");
|
|
@@ -39,6 +42,7 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
39
42
|
const isSecure = !property.public;
|
|
40
43
|
const name = property.name || property.propertyKey;
|
|
41
44
|
const path = (0, core_1.getActionPath)(object.alias, name);
|
|
45
|
+
(0, warn_if_public_1.warnIfPublic)(path, property);
|
|
42
46
|
this.beforeInterceptors[path] =
|
|
43
47
|
(0, core_1.createExecuteInterceptors)([core_1.commonInterceptor.onBeforeExecute], object, property);
|
|
44
48
|
this.afterInterceptors[path] =
|
|
@@ -51,6 +55,7 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
51
55
|
path: path,
|
|
52
56
|
name: name,
|
|
53
57
|
secure: isSecure,
|
|
58
|
+
transactional: (0, resolve_action_transactional_1.resolveActionTransactional)(object, property),
|
|
54
59
|
execute: async (action, context) => {
|
|
55
60
|
return this
|
|
56
61
|
.execute(action, context, data.executors[name], property);
|
|
@@ -120,6 +125,8 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
120
125
|
path: path,
|
|
121
126
|
description: property.description,
|
|
122
127
|
isSecure: isSecure,
|
|
128
|
+
authenticated: property.authenticated,
|
|
129
|
+
keys: (0, describe_action_scope_1.describeActionScopeKeys)(property),
|
|
123
130
|
payload: property.data,
|
|
124
131
|
response: property.data,
|
|
125
132
|
hasResponse: true,
|
|
@@ -154,6 +161,19 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
154
161
|
// End After Interceptor
|
|
155
162
|
}
|
|
156
163
|
async onBefore(pending, context, property) {
|
|
164
|
+
const groups = property.exposeGroups ?? [];
|
|
165
|
+
const payload = context.request[pending.requestRef];
|
|
166
|
+
const idProperty = (0, database_1.getIdProperty)(property.data);
|
|
167
|
+
const idValue = payload?.[idProperty.propertyKey];
|
|
168
|
+
const postType = !idValue ? 'create' : 'modify';
|
|
169
|
+
await (0, assert_scope_action_access_1.assertScopeActionAccess)({
|
|
170
|
+
property,
|
|
171
|
+
slot: postType === "create" ? "create" : "modify",
|
|
172
|
+
pending,
|
|
173
|
+
context,
|
|
174
|
+
postType,
|
|
175
|
+
entityId: idValue != null ? String(idValue) : undefined,
|
|
176
|
+
});
|
|
157
177
|
// Before Validation Interceptor
|
|
158
178
|
await this
|
|
159
179
|
.beforeValidationInterceptors[pending.path]({
|
|
@@ -162,13 +182,7 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
162
182
|
property: property
|
|
163
183
|
});
|
|
164
184
|
// End Before Validation Interceptor
|
|
165
|
-
const groups = property.exposeGroups ?? [];
|
|
166
|
-
const payload = context.request[pending.requestRef];
|
|
167
|
-
const idProperty = (0, database_1.getIdProperty)(property.data);
|
|
168
|
-
const idValue = payload[idProperty.propertyKey];
|
|
169
|
-
const postType = !idValue ? 'create' : 'modify';
|
|
170
185
|
const sanitized = {};
|
|
171
|
-
const protector = (0, use_protector_1.useProtector)(property.data);
|
|
172
186
|
const errors = await (0, class_pipe_1.validate)(property.data, payload, sanitized, {
|
|
173
187
|
groups: postType === 'modify'
|
|
174
188
|
? [global_1.actionGroups.modify, ...groups]
|
|
@@ -196,16 +210,6 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
196
210
|
errors.target = pending.requestRef;
|
|
197
211
|
throw errors;
|
|
198
212
|
}
|
|
199
|
-
if (context.isAuthenticated && protector) {
|
|
200
|
-
if (postType === 'modify') {
|
|
201
|
-
await protector
|
|
202
|
-
.canModify(context.session?.userId, payload, context.entityManager);
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
await protector
|
|
206
|
-
.canCreate(context.session?.userId, payload, context.entityManager);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
213
|
const postContent = {
|
|
210
214
|
idProperty: idProperty.propertyKey,
|
|
211
215
|
data: property.content?.strict
|