@rockster/core 0.0.4 → 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.js +3 -7
- package/access/access.module.js.map +1 -1
- 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 +2 -1
- package/access/controllers/controllers.js +3 -1
- package/access/controllers/controllers.js.map +1 -1
- 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 +11 -4
- package/access/controllers/scope-group-user.controller.js +57 -9
- package/access/controllers/scope-group-user.controller.js.map +1 -1
- package/access/controllers/scope-group.controller.d.ts +8 -5
- package/access/controllers/scope-group.controller.js +66 -12
- package/access/controllers/scope-group.controller.js.map +1 -1
- package/access/controllers/scope-owner.controller.d.ts +3 -2
- package/access/controllers/scope-owner.controller.js +18 -4
- package/access/controllers/scope-owner.controller.js.map +1 -1
- package/access/controllers/scope-user.controller.d.ts +2 -2
- package/access/controllers/scope-user.controller.js +19 -5
- package/access/controllers/scope-user.controller.js.map +1 -1
- 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 +3 -1
- package/access/entities/entities.js +4 -0
- package/access/entities/entities.js.map +1 -1
- package/access/entities/index.d.ts +2 -0
- package/access/entities/index.js +2 -0
- package/access/entities/index.js.map +1 -1
- 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-group.d.ts +3 -0
- package/access/entities/scope-group.js +16 -0
- package/access/entities/scope-group.js.map +1 -1
- 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/index.d.ts +5 -0
- package/access/functions/index.js +5 -0
- package/access/functions/index.js.map +1 -1
- 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 +16 -5
- package/access/functions/register-scope.js +57 -45
- package/access/functions/register-scope.js.map +1 -1
- 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 +2 -0
- package/access/index.js +2 -0
- package/access/index.js.map +1 -1
- package/access/interfaces/index.d.ts +1 -0
- package/access/interfaces/index.js +1 -0
- package/access/interfaces/index.js.map +1 -1
- 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 +16 -1
- package/access/interfaces/scope-service.d.ts +6 -7
- 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-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-user-mapped.d.ts +1 -0
- package/access/models/scope-user-mapped.js +6 -0
- package/access/models/scope-user-mapped.js.map +1 -1
- package/access/models/scope-user.js +4 -2
- package/access/models/scope-user.js.map +1 -1
- 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.query.js +9 -2
- package/access/queries/scope-group.query.js.map +1 -1
- package/access/services/index.d.ts +1 -0
- package/access/services/index.js +1 -0
- package/access/services/index.js.map +1 -1
- 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.js +4 -2
- package/access/services/scope-access.service.js.map +1 -1
- package/access/services/scope-group-user.service.js +2 -2
- package/access/services/scope-group-user.service.js.map +1 -1
- package/access/services/scope-group.service.d.ts +10 -0
- package/access/services/scope-group.service.js +38 -1
- package/access/services/scope-group.service.js.map +1 -1
- package/access/services/scope-owner.service.d.ts +3 -0
- package/access/services/scope-owner.service.js +26 -1
- package/access/services/scope-owner.service.js.map +1 -1
- package/command/services/post-action-builder.js +19 -17
- package/command/services/post-action-builder.js.map +1 -1
- package/command/services/remove-action-builder.js +30 -22
- package/command/services/remove-action-builder.js.map +1 -1
- package/controllers/interfaces/controller-property.d.ts +7 -1
- package/controllers/services/default-action-builder.js +12 -30
- 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.js +6 -1
- package/core/core.controller.js.map +1 -1
- package/core/interfaces/action-docs.d.ts +15 -0
- package/core/interfaces/request-context.d.ts +5 -0
- package/core/services/request-router.js +2 -1
- 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/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/functions/inject-repository-handle.js +4 -3
- package/database/functions/inject-repository-handle.js.map +1 -1
- package/database/interfaces/entity-object.d.ts +0 -6
- 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/repository.d.ts +8 -8
- 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/global.d.ts +2 -0
- package/global.js +1 -0
- package/global.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/jobs/jobs.controller.d.ts +2 -0
- package/jobs/jobs.controller.js +20 -16
- package/jobs/jobs.controller.js.map +1 -1
- package/package.json +70 -70
- package/query/functions/add-join.js +2 -13
- package/query/functions/add-join.js.map +1 -1
- package/query/functions/create-query-builder.js +0 -10
- package/query/functions/create-query-builder.js.map +1 -1
- package/query/functions/execute-query.js +34 -0
- package/query/functions/execute-query.js.map +1 -1
- package/query/functions/load-properties.js +73 -5
- package/query/functions/load-properties.js.map +1 -1
- package/query/services/query-action-builder.js +12 -18
- 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/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/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 +3 -0
- 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-post.js +2 -0
- package/tasks/functions/create-task-message-post.js.map +1 -1
- 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 +4 -0
- package/tasks/interfaces/task-post-hook.d.ts +2 -0
- package/{database/interfaces/protector.js → tasks/interfaces/task-post-hook.js} +1 -1
- package/tasks/interfaces/task-post-hook.js.map +1 -0
- package/tasks/interfaces/task-settings.d.ts +5 -0
- package/tasks/services/task-runner.service.d.ts +24 -3
- package/tasks/services/task-runner.service.js +66 -28
- package/tasks/services/task-runner.service.js.map +1 -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 -60
- 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
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { RepositoryService } from "../../database/services/repository.service";
|
|
2
2
|
import { IScopeGroup } from "@rockster/common/access";
|
|
3
3
|
import { Repository } from "../../database/interfaces/repository";
|
|
4
|
+
import { ScopeAccessProfileService } from "./scope-access-profile.service";
|
|
5
|
+
import { ScopeAccessService } from "./scope-access.service";
|
|
4
6
|
export declare class ScopeGroupService extends RepositoryService<IScopeGroup> {
|
|
7
|
+
protected readonly scopeAccessProfileService: ScopeAccessProfileService;
|
|
8
|
+
protected readonly scopeAccessService: ScopeAccessService;
|
|
5
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[]>;
|
|
6
16
|
getUserGroups(userId: string, contextName: string, contextId?: string): Promise<IScopeGroup[]>;
|
|
7
17
|
}
|
|
@@ -15,7 +15,42 @@ const repository_service_1 = require("../../database/services/repository.service
|
|
|
15
15
|
const inject_repository_decorator_1 = require("../../database/decorators/inject-repository.decorator");
|
|
16
16
|
const scope_group_1 = require("../entities/scope-group");
|
|
17
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");
|
|
18
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
|
+
}
|
|
19
54
|
async getUserGroups(userId, contextName, contextId) {
|
|
20
55
|
return this
|
|
21
56
|
.repository
|
|
@@ -33,6 +68,8 @@ __decorate([
|
|
|
33
68
|
__metadata("design:type", Object)
|
|
34
69
|
], ScopeGroupService.prototype, "repository", void 0);
|
|
35
70
|
exports.ScopeGroupService = ScopeGroupService = __decorate([
|
|
36
|
-
(0, class_injector_1.Injectable)()
|
|
71
|
+
(0, class_injector_1.Injectable)(),
|
|
72
|
+
__metadata("design:paramtypes", [scope_access_profile_service_1.ScopeAccessProfileService,
|
|
73
|
+
scope_access_service_1.ScopeAccessService])
|
|
37
74
|
], ScopeGroupService);
|
|
38
75
|
//# sourceMappingURL=scope-group.service.js.map
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -4,4 +4,7 @@ import { Repository } from "../../database/interfaces/repository";
|
|
|
4
4
|
export declare class ScopeOwnerService extends RepositoryService<IScopeOwner> {
|
|
5
5
|
protected repository: Repository<IScopeOwner>;
|
|
6
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>;
|
|
7
10
|
}
|
|
@@ -14,15 +14,40 @@ const class_injector_1 = require("@rockster/class-injector");
|
|
|
14
14
|
const repository_service_1 = require("../../database/services/repository.service");
|
|
15
15
|
const inject_repository_decorator_1 = require("../../database/decorators/inject-repository.decorator");
|
|
16
16
|
const scope_owner_1 = require("../entities/scope-owner");
|
|
17
|
+
const typeorm_1 = require("typeorm");
|
|
17
18
|
let ScopeOwnerService = class ScopeOwnerService extends repository_service_1.RepositoryService {
|
|
18
19
|
async getIsOwner(contextName, userId, contextId) {
|
|
20
|
+
const normalizedContextId = contextId == null || contextId === "" ? undefined : contextId;
|
|
19
21
|
const exists = await this.repository.findOneBy({
|
|
20
|
-
contextId:
|
|
22
|
+
contextId: normalizedContextId,
|
|
21
23
|
contextName: contextName,
|
|
22
24
|
userId: userId
|
|
23
25
|
});
|
|
24
26
|
return !!exists;
|
|
25
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
|
+
}
|
|
26
51
|
};
|
|
27
52
|
exports.ScopeOwnerService = ScopeOwnerService;
|
|
28
53
|
__decorate([
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -15,7 +15,9 @@ const resolve_action_transactional_1 = require("../../core/functions/resolve-act
|
|
|
15
15
|
const constants_1 = require("../constants");
|
|
16
16
|
const constants_2 = require("../../controllers/constants");
|
|
17
17
|
const database_1 = require("../../database");
|
|
18
|
-
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");
|
|
19
21
|
const constants_3 = require("../../web-socket/constants");
|
|
20
22
|
const global_1 = require("../../global");
|
|
21
23
|
const docs_1 = require("@rockster/common/docs");
|
|
@@ -40,6 +42,7 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
40
42
|
const isSecure = !property.public;
|
|
41
43
|
const name = property.name || property.propertyKey;
|
|
42
44
|
const path = (0, core_1.getActionPath)(object.alias, name);
|
|
45
|
+
(0, warn_if_public_1.warnIfPublic)(path, property);
|
|
43
46
|
this.beforeInterceptors[path] =
|
|
44
47
|
(0, core_1.createExecuteInterceptors)([core_1.commonInterceptor.onBeforeExecute], object, property);
|
|
45
48
|
this.afterInterceptors[path] =
|
|
@@ -122,6 +125,8 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
122
125
|
path: path,
|
|
123
126
|
description: property.description,
|
|
124
127
|
isSecure: isSecure,
|
|
128
|
+
authenticated: property.authenticated,
|
|
129
|
+
keys: (0, describe_action_scope_1.describeActionScopeKeys)(property),
|
|
125
130
|
payload: property.data,
|
|
126
131
|
response: property.data,
|
|
127
132
|
hasResponse: true,
|
|
@@ -156,6 +161,19 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
156
161
|
// End After Interceptor
|
|
157
162
|
}
|
|
158
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
|
+
});
|
|
159
177
|
// Before Validation Interceptor
|
|
160
178
|
await this
|
|
161
179
|
.beforeValidationInterceptors[pending.path]({
|
|
@@ -164,13 +182,7 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
164
182
|
property: property
|
|
165
183
|
});
|
|
166
184
|
// End Before Validation Interceptor
|
|
167
|
-
const groups = property.exposeGroups ?? [];
|
|
168
|
-
const payload = context.request[pending.requestRef];
|
|
169
|
-
const idProperty = (0, database_1.getIdProperty)(property.data);
|
|
170
|
-
const idValue = payload[idProperty.propertyKey];
|
|
171
|
-
const postType = !idValue ? 'create' : 'modify';
|
|
172
185
|
const sanitized = {};
|
|
173
|
-
const protector = (0, use_protector_1.useProtector)(property.data);
|
|
174
186
|
const errors = await (0, class_pipe_1.validate)(property.data, payload, sanitized, {
|
|
175
187
|
groups: postType === 'modify'
|
|
176
188
|
? [global_1.actionGroups.modify, ...groups]
|
|
@@ -198,16 +210,6 @@ let PostActionBuilder = class PostActionBuilder {
|
|
|
198
210
|
errors.target = pending.requestRef;
|
|
199
211
|
throw errors;
|
|
200
212
|
}
|
|
201
|
-
if (context.isAuthenticated && protector) {
|
|
202
|
-
if (postType === 'modify') {
|
|
203
|
-
await protector
|
|
204
|
-
.canModify(context.session?.userId, payload, context.entityManager);
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
await protector
|
|
208
|
-
.canCreate(context.session?.userId, payload, context.entityManager);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
213
|
const postContent = {
|
|
212
214
|
idProperty: idProperty.propertyKey,
|
|
213
215
|
data: property.content?.strict
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-action-builder.js","sourceRoot":"./","sources":["command/services/post-action-builder.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6DAGkC;AAKlC,qCASoB;AAEpB,qDAM8B;AAE9B,6DAIsC;AACtC,oGAA+F;AAC/F,4CAGsB;AACtB,2DAAkE;AAClE,6CAA+C;AAM/C,
|
|
1
|
+
{"version":3,"file":"post-action-builder.js","sourceRoot":"./","sources":["command/services/post-action-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,9 @@ const resolve_action_transactional_1 = require("../../core/functions/resolve-act
|
|
|
15
15
|
const constants_1 = require("../constants");
|
|
16
16
|
const constants_2 = require("../../controllers/constants");
|
|
17
17
|
const database_1 = require("../../database");
|
|
18
|
-
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");
|
|
19
21
|
const use_repository_1 = require("../../database/functions/use-repository");
|
|
20
22
|
const class_pipe_1 = require("@rockster/class-pipe");
|
|
21
23
|
const executed_response_1 = require("../../common/models/executed-response");
|
|
@@ -39,6 +41,7 @@ let RemoveActionBuilder = class RemoveActionBuilder {
|
|
|
39
41
|
const isSecure = !property.public;
|
|
40
42
|
const name = property.name || property.propertyKey;
|
|
41
43
|
const path = (0, core_1.getActionPath)(object.alias, name);
|
|
44
|
+
(0, warn_if_public_1.warnIfPublic)(path, property);
|
|
42
45
|
this.beforeInterceptors[path] =
|
|
43
46
|
(0, core_1.createExecuteInterceptors)([core_1.commonInterceptor.onBeforeExecute], object, property);
|
|
44
47
|
this.afterInterceptors[path] =
|
|
@@ -80,6 +83,8 @@ let RemoveActionBuilder = class RemoveActionBuilder {
|
|
|
80
83
|
path: path,
|
|
81
84
|
description: property.description,
|
|
82
85
|
isSecure: isSecure,
|
|
86
|
+
authenticated: property.authenticated,
|
|
87
|
+
keys: (0, describe_action_scope_1.describeActionScopeKeys)(property),
|
|
83
88
|
payload: property.data,
|
|
84
89
|
response: Response,
|
|
85
90
|
hasResponse: property.hasResponse,
|
|
@@ -135,31 +140,34 @@ let RemoveActionBuilder = class RemoveActionBuilder {
|
|
|
135
140
|
// End Before Validation Interceptor
|
|
136
141
|
const idProperty = (0, database_1.getIdProperty)(property.data);
|
|
137
142
|
const idValue = context.request[pending.requestRef];
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
const scopeSlot = property.keys?.has("remove") ? "remove" : "default";
|
|
144
|
+
await (0, assert_scope_action_access_1.assertScopeActionAccess)({
|
|
145
|
+
property,
|
|
146
|
+
slot: scopeSlot,
|
|
147
|
+
pending,
|
|
148
|
+
context,
|
|
149
|
+
entityId: idValue != null ? String(idValue) : undefined,
|
|
150
|
+
});
|
|
151
|
+
const invalidError = new common_1.BadRequestError({
|
|
152
|
+
message: `invalid id value [${idValue}]`
|
|
153
|
+
});
|
|
154
|
+
try {
|
|
155
|
+
const repository = context.entityManager
|
|
156
|
+
? context.entityManager.getRepository(property.data)
|
|
157
|
+
: (0, use_repository_1.useRepository)(property.data);
|
|
158
|
+
const stored = await repository.findOneBy({
|
|
159
|
+
[idProperty.propertyKey]: idValue
|
|
146
160
|
});
|
|
147
|
-
|
|
148
|
-
const repository = context.entityManager
|
|
149
|
-
? context.entityManager.getRepository(property.data)
|
|
150
|
-
: (0, use_repository_1.useRepository)(property.data);
|
|
151
|
-
const stored = await repository
|
|
152
|
-
.findOneBy({
|
|
153
|
-
[idProperty.propertyKey]: idValue
|
|
154
|
-
});
|
|
155
|
-
if (!stored) {
|
|
156
|
-
throw invalidError;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
161
|
+
if (!stored) {
|
|
160
162
|
throw invalidError;
|
|
161
163
|
}
|
|
162
164
|
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
if (error instanceof common_1.BadRequestError) {
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
throw invalidError;
|
|
170
|
+
}
|
|
163
171
|
const removeContent = {
|
|
164
172
|
target: property.data,
|
|
165
173
|
idProperty: idProperty.propertyKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-action-builder.js","sourceRoot":"./","sources":["command/services/remove-action-builder.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6DAGkC;AAKlC,qCASoB;AAEpB,6CAG0B;AAC1B,6DAIsC;AACtC,oGAA+F;AAC/F,4CAGsB;AACtB,2DAAkE;AAClE,6CAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"remove-action-builder.js","sourceRoot":"./","sources":["command/services/remove-action-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@ export interface IControllerProperty extends IProperty {
|
|
|
8
8
|
type: PropertyType.request;
|
|
9
9
|
name?: string;
|
|
10
10
|
public?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Marks an endpoint that skips the default auth service but authenticates via
|
|
13
|
+
* a special strategy (see `createAuthenticationInterceptor`). Suppresses the
|
|
14
|
+
* `[PUBLIC]` warning and is surfaced in the docs as a custom auth requirement.
|
|
15
|
+
*/
|
|
16
|
+
authenticated?: boolean;
|
|
11
17
|
data?: Instantiable;
|
|
12
18
|
description?: string;
|
|
13
19
|
hasResponse?: boolean;
|
|
@@ -32,6 +38,6 @@ export interface IControllerProperty extends IProperty {
|
|
|
32
38
|
fullPath?: string;
|
|
33
39
|
exposeGroups?: string[];
|
|
34
40
|
validateGroups?: string[];
|
|
35
|
-
keys?: Map<string, IScopeKey>;
|
|
41
|
+
keys?: Map<string, IScopeKey[]>;
|
|
36
42
|
useTransaction?: boolean;
|
|
37
43
|
}
|
|
@@ -13,9 +13,9 @@ const core_1 = require("../../core");
|
|
|
13
13
|
const resolve_action_transactional_1 = require("../../core/functions/resolve-action-transactional");
|
|
14
14
|
const class_pipe_1 = require("@rockster/class-pipe");
|
|
15
15
|
const constants_1 = require("../constants");
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
16
|
+
const assert_scope_action_access_1 = require("../../access/functions/assert-scope-action-access");
|
|
17
|
+
const warn_if_public_1 = require("../../access/functions/warn-if-public");
|
|
18
|
+
const describe_action_scope_1 = require("../../access/functions/describe-action-scope");
|
|
19
19
|
const executed_response_1 = require("../../common/models/executed-response");
|
|
20
20
|
const request_status_1 = require("../../common/interfaces/enum/request-status");
|
|
21
21
|
const web_socket_1 = require("../../web-socket");
|
|
@@ -38,6 +38,7 @@ let DefaultActionBuilder = class DefaultActionBuilder {
|
|
|
38
38
|
const isSecure = !property.public;
|
|
39
39
|
const name = property.name || property.propertyKey;
|
|
40
40
|
const path = (0, core_1.getActionPath)(object.alias, name);
|
|
41
|
+
(0, warn_if_public_1.warnIfPublic)(path, property);
|
|
41
42
|
this.beforeInterceptors[path] =
|
|
42
43
|
(0, core_1.createExecuteInterceptors)([core_1.commonInterceptor.onBeforeExecute], object, property);
|
|
43
44
|
this.afterInterceptors[path] =
|
|
@@ -85,6 +86,8 @@ let DefaultActionBuilder = class DefaultActionBuilder {
|
|
|
85
86
|
description: property.description,
|
|
86
87
|
isResponseArray: property.isResponseArray,
|
|
87
88
|
isSecure: isSecure,
|
|
89
|
+
authenticated: property.authenticated,
|
|
90
|
+
keys: (0, describe_action_scope_1.describeActionScopeKeys)(property),
|
|
88
91
|
payload: Payload,
|
|
89
92
|
response: Response,
|
|
90
93
|
};
|
|
@@ -136,33 +139,12 @@ let DefaultActionBuilder = class DefaultActionBuilder {
|
|
|
136
139
|
}, true);
|
|
137
140
|
}
|
|
138
141
|
async onBefore(pending, context, property) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
const raw = context.request[pending.requestRef];
|
|
147
|
-
const wid = raw?.workspaceId;
|
|
148
|
-
if (wid == null || String(wid).trim() === "") {
|
|
149
|
-
throw new common_1.ForbiddenError({
|
|
150
|
-
message: "workspaceId is required for this action",
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
const contextId = String(wid);
|
|
154
|
-
const isOwner = await (0, get_is_owner_1.getIsOwner)(key.contextName, userId, contextId);
|
|
155
|
-
if (!isOwner) {
|
|
156
|
-
const userKeys = await (0, get_user_keys_1.getUserKeys)(userId, contextId);
|
|
157
|
-
if (!userKeys.includes(key.name)) {
|
|
158
|
-
throw new common_1.ForbiddenError({
|
|
159
|
-
message: "Action require permissions to execute",
|
|
160
|
-
requirements: [key.name],
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
142
|
+
await (0, assert_scope_action_access_1.assertScopeActionAccess)({
|
|
143
|
+
property,
|
|
144
|
+
slot: "default",
|
|
145
|
+
pending,
|
|
146
|
+
context,
|
|
147
|
+
});
|
|
166
148
|
if (property.data) {
|
|
167
149
|
const sanitized = {};
|
|
168
150
|
const payload = context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-action-builder.js","sourceRoot":"./","sources":["controllers/services/default-action-builder.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6DAGkC;AAKlC,8CAIuB;AACvB,qCASoB;AACpB,oGAA+F;AAE/F,qDAI8B;AAC9B,4CAIsB;
|
|
1
|
+
{"version":3,"file":"default-action-builder.js","sourceRoot":"./","sources":["controllers/services/default-action-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,9 @@ const class_pipe_1 = require("@rockster/class-pipe");
|
|
|
25
25
|
const web_socket_1 = require("../../web-socket");
|
|
26
26
|
const use_auth_1 = require("../../security/functions/use-auth");
|
|
27
27
|
const docs_1 = require("@rockster/common/docs");
|
|
28
|
+
const assert_scope_action_access_1 = require("../../access/functions/assert-scope-action-access");
|
|
29
|
+
const warn_if_public_1 = require("../../access/functions/warn-if-public");
|
|
30
|
+
const describe_action_scope_1 = require("../../access/functions/describe-action-scope");
|
|
28
31
|
let RestfulActionBuilder = class RestfulActionBuilder {
|
|
29
32
|
constructor(httpController) {
|
|
30
33
|
this.httpController = httpController;
|
|
@@ -48,6 +51,7 @@ let RestfulActionBuilder = class RestfulActionBuilder {
|
|
|
48
51
|
const onAfterExecute = (0, create_interceptor_1.createExecuteInterceptors)(onAfterExecuteFilter, object, property);
|
|
49
52
|
const httpMethod = property.httpMethod;
|
|
50
53
|
property.fullPath = !fullPath.startsWith('/') ? `/${fullPath}` : fullPath;
|
|
54
|
+
(0, warn_if_public_1.warnIfPublic)(`${httpMethod} ${property.fullPath}`, property);
|
|
51
55
|
this.createActionsDocs(object, property);
|
|
52
56
|
this.httpController.addRoute(httpMethod, property.fullPath, async (req, res) => {
|
|
53
57
|
try {
|
|
@@ -56,6 +60,24 @@ let RestfulActionBuilder = class RestfulActionBuilder {
|
|
|
56
60
|
session = await (0, use_auth_1.useAuth)().httpInterceptor(req);
|
|
57
61
|
if (req.isWs)
|
|
58
62
|
session = req.session;
|
|
63
|
+
// Restful routes (@Get/@Post…) enforce scope keys here — the
|
|
64
|
+
// action/query/command builders do it via assertScopeActionAccess
|
|
65
|
+
// too, but those run on the /request pipeline, not on REST routes.
|
|
66
|
+
if (property.keys && property.keys.size > 0) {
|
|
67
|
+
await (0, assert_scope_action_access_1.assertScopeActionAccess)({
|
|
68
|
+
property,
|
|
69
|
+
slot: "default",
|
|
70
|
+
requestPayload: {
|
|
71
|
+
...(req.params ?? {}),
|
|
72
|
+
...(req.query ?? {}),
|
|
73
|
+
...(req.body ?? {}),
|
|
74
|
+
},
|
|
75
|
+
context: {
|
|
76
|
+
session,
|
|
77
|
+
entityManager: undefined,
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
}
|
|
59
81
|
const initialData = {
|
|
60
82
|
[constants_1.SESSION_KEY]: session,
|
|
61
83
|
[constants_1.REQUEST_KEY]: req,
|
|
@@ -101,7 +123,7 @@ let RestfulActionBuilder = class RestfulActionBuilder {
|
|
|
101
123
|
});
|
|
102
124
|
}
|
|
103
125
|
catch (error) {
|
|
104
|
-
const code = error.httpCode || common_1.HttpStatus.internalServerError;
|
|
126
|
+
const code = (error.httpCode ?? error.status) || common_1.HttpStatus.internalServerError;
|
|
105
127
|
const body = code === common_1.HttpStatus.internalServerError ? null : error;
|
|
106
128
|
res.status(code).json(body);
|
|
107
129
|
core.options?.onRequestError?.apply(this, [error]);
|
|
@@ -120,6 +142,8 @@ let RestfulActionBuilder = class RestfulActionBuilder {
|
|
|
120
142
|
exposeGroups: property.exposeGroups,
|
|
121
143
|
validateGroups: property.validateGroups,
|
|
122
144
|
isSecure: !property.public,
|
|
145
|
+
authenticated: property.authenticated,
|
|
146
|
+
keys: (0, describe_action_scope_1.describeActionScopeKeys)(property),
|
|
123
147
|
description: property.description,
|
|
124
148
|
headers: property.fromHeaders,
|
|
125
149
|
headersNames: property.fromHeadersFields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restful-action-builder.js","sourceRoot":"./","sources":["controllers/services/restful-action-builder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAGkC;AAOlC,gFAAoF;AACpF,gFAA4E;AAC5E,mEAAsE;AACtE,gDAAwB;AACxB,gEAA4D;AAC5D,6CAI0B;AAC1B,4CAQsB;AACtB,qDAG8B;AAC9B,iDAE0B;AAC1B,gEAA4D;AAE5D,gDAAiE;
|
|
1
|
+
{"version":3,"file":"restful-action-builder.js","sourceRoot":"./","sources":["controllers/services/restful-action-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestContextStore = void 0;
|
|
4
|
+
const async_hooks_1 = require("async_hooks");
|
|
5
|
+
exports.requestContextStore = new async_hooks_1.AsyncLocalStorage();
|
|
6
|
+
//# sourceMappingURL=request-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-context.js","sourceRoot":"./","sources":["core/contexts/request-context.ts"],"names":[],"mappings":";;;AAAA,6CAAgD;AAGnC,QAAA,mBAAmB,GAAG,IAAI,+BAAiB,EAAmB,CAAC"}
|