@carlonicora/nestjs-neo4jsonapi 6.6.2 → 6.7.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/dist/agents/operator/controllers/operator.controller.d.ts.map +1 -1
- package/dist/agents/operator/controllers/operator.controller.js +3 -0
- package/dist/agents/operator/controllers/operator.controller.js.map +1 -1
- package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
- package/dist/bootstrap/app.module.factory.js +9 -0
- package/dist/bootstrap/app.module.factory.js.map +1 -1
- package/dist/bootstrap/bootstrap.options.d.ts +19 -0
- package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
- package/dist/common/constants/core-module.ids.d.ts +39 -0
- package/dist/common/constants/core-module.ids.d.ts.map +1 -0
- package/dist/common/constants/core-module.ids.js +41 -0
- package/dist/common/constants/core-module.ids.js.map +1 -0
- package/dist/common/decorators/module.decorator.d.ts +19 -0
- package/dist/common/decorators/module.decorator.d.ts.map +1 -1
- package/dist/common/decorators/module.decorator.js +8 -2
- package/dist/common/decorators/module.decorator.js.map +1 -1
- package/dist/common/guards/jwt.auth.admin.guard.d.ts +3 -1
- package/dist/common/guards/jwt.auth.admin.guard.d.ts.map +1 -1
- package/dist/common/guards/jwt.auth.admin.guard.js +8 -2
- package/dist/common/guards/jwt.auth.admin.guard.js.map +1 -1
- package/dist/common/guards/jwt.auth.guard.d.ts +3 -1
- package/dist/common/guards/jwt.auth.guard.d.ts.map +1 -1
- package/dist/common/guards/jwt.auth.guard.js +8 -2
- package/dist/common/guards/jwt.auth.guard.js.map +1 -1
- package/dist/common/guards/jwt.auth.optional.guard.d.ts +3 -1
- package/dist/common/guards/jwt.auth.optional.guard.d.ts.map +1 -1
- package/dist/common/guards/jwt.auth.optional.guard.js +12 -3
- package/dist/common/guards/jwt.auth.optional.guard.js.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts.map +1 -1
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.js +4 -0
- package/dist/foundations/ai-connection/controllers/ai-connection.controller.js.map +1 -1
- package/dist/foundations/analytics/controllers/analytics.admin.controller.d.ts.map +1 -1
- package/dist/foundations/analytics/controllers/analytics.admin.controller.js +3 -0
- package/dist/foundations/analytics/controllers/analytics.admin.controller.js.map +1 -1
- package/dist/foundations/analytics/controllers/analytics.controller.d.ts.map +1 -1
- package/dist/foundations/analytics/controllers/analytics.controller.js +3 -0
- package/dist/foundations/analytics/controllers/analytics.controller.js.map +1 -1
- package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -1
- package/dist/foundations/assistant/controllers/assistant.controller.js +3 -0
- package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -1
- package/dist/foundations/assistant-action/controllers/assistant-action.controller.d.ts.map +1 -1
- package/dist/foundations/assistant-action/controllers/assistant-action.controller.js +3 -0
- package/dist/foundations/assistant-action/controllers/assistant-action.controller.js.map +1 -1
- package/dist/foundations/assistant-message/controllers/assistant-message.controller.d.ts.map +1 -1
- package/dist/foundations/assistant-message/controllers/assistant-message.controller.js +3 -0
- package/dist/foundations/assistant-message/controllers/assistant-message.controller.js.map +1 -1
- package/dist/foundations/audit/controllers/audit.controller.d.ts.map +1 -1
- package/dist/foundations/audit/controllers/audit.controller.js +3 -0
- package/dist/foundations/audit/controllers/audit.controller.js.map +1 -1
- package/dist/foundations/auth/controllers/auth.controller.d.ts.map +1 -1
- package/dist/foundations/auth/controllers/auth.controller.js +3 -0
- package/dist/foundations/auth/controllers/auth.controller.js.map +1 -1
- package/dist/foundations/chunk/controllers/chunk.controller.d.ts.map +1 -1
- package/dist/foundations/chunk/controllers/chunk.controller.js +3 -0
- package/dist/foundations/chunk/controllers/chunk.controller.js.map +1 -1
- package/dist/foundations/company/controllers/company.controller.d.ts.map +1 -1
- package/dist/foundations/company/controllers/company.controller.js +3 -0
- package/dist/foundations/company/controllers/company.controller.js.map +1 -1
- package/dist/foundations/content/controllers/content.controller.d.ts.map +1 -1
- package/dist/foundations/content/controllers/content.controller.js +3 -0
- package/dist/foundations/content/controllers/content.controller.js.map +1 -1
- package/dist/foundations/email-automation/controllers/email-automation-step.controller.d.ts.map +1 -1
- package/dist/foundations/email-automation/controllers/email-automation-step.controller.js +3 -0
- package/dist/foundations/email-automation/controllers/email-automation-step.controller.js.map +1 -1
- package/dist/foundations/email-automation/controllers/email-automation.controller.d.ts.map +1 -1
- package/dist/foundations/email-automation/controllers/email-automation.controller.js +3 -0
- package/dist/foundations/email-automation/controllers/email-automation.controller.js.map +1 -1
- package/dist/foundations/feature/controllers/feature.controller.d.ts.map +1 -1
- package/dist/foundations/feature/controllers/feature.controller.js +3 -0
- package/dist/foundations/feature/controllers/feature.controller.js.map +1 -1
- package/dist/foundations/handbook/controllers/handbook-thread.controller.d.ts.map +1 -1
- package/dist/foundations/handbook/controllers/handbook-thread.controller.js +3 -0
- package/dist/foundations/handbook/controllers/handbook-thread.controller.js.map +1 -1
- package/dist/foundations/handbook/controllers/handbook.controller.d.ts.map +1 -1
- package/dist/foundations/handbook/controllers/handbook.controller.js +3 -0
- package/dist/foundations/handbook/controllers/handbook.controller.js.map +1 -1
- package/dist/foundations/how-to/controllers/how-to.controller.d.ts.map +1 -1
- package/dist/foundations/how-to/controllers/how-to.controller.js +3 -0
- package/dist/foundations/how-to/controllers/how-to.controller.js.map +1 -1
- package/dist/foundations/keyconcept/controllers/keyconcept.controller.d.ts.map +1 -1
- package/dist/foundations/keyconcept/controllers/keyconcept.controller.js +3 -0
- package/dist/foundations/keyconcept/controllers/keyconcept.controller.js.map +1 -1
- package/dist/foundations/notification/controllers/notification.controller.d.ts.map +1 -1
- package/dist/foundations/notification/controllers/notification.controller.js +4 -0
- package/dist/foundations/notification/controllers/notification.controller.js.map +1 -1
- package/dist/foundations/oauth/controllers/oauth.authorize.controller.d.ts.map +1 -1
- package/dist/foundations/oauth/controllers/oauth.authorize.controller.js +4 -0
- package/dist/foundations/oauth/controllers/oauth.authorize.controller.js.map +1 -1
- package/dist/foundations/oauth/controllers/oauth.management.controller.d.ts.map +1 -1
- package/dist/foundations/oauth/controllers/oauth.management.controller.js +3 -0
- package/dist/foundations/oauth/controllers/oauth.management.controller.js.map +1 -1
- package/dist/foundations/push/controllers/push.controller.d.ts.map +1 -1
- package/dist/foundations/push/controllers/push.controller.js +3 -0
- package/dist/foundations/push/controllers/push.controller.js.map +1 -1
- package/dist/foundations/rbac/controllers/rbac-dev.controller.d.ts.map +1 -1
- package/dist/foundations/rbac/controllers/rbac-dev.controller.js +3 -0
- package/dist/foundations/rbac/controllers/rbac-dev.controller.js.map +1 -1
- package/dist/foundations/rbac/controllers/rbac-module-paths.controller.d.ts.map +1 -1
- package/dist/foundations/rbac/controllers/rbac-module-paths.controller.js +3 -0
- package/dist/foundations/rbac/controllers/rbac-module-paths.controller.js.map +1 -1
- package/dist/foundations/rbac/controllers/rbac.controller.d.ts.map +1 -1
- package/dist/foundations/rbac/controllers/rbac.controller.js +3 -0
- package/dist/foundations/rbac/controllers/rbac.controller.js.map +1 -1
- package/dist/foundations/rbac/index.d.ts +5 -0
- package/dist/foundations/rbac/index.d.ts.map +1 -1
- package/dist/foundations/rbac/index.js +12 -1
- package/dist/foundations/rbac/index.js.map +1 -1
- package/dist/foundations/rbac/rbac-permission.module.d.ts +4 -0
- package/dist/foundations/rbac/rbac-permission.module.d.ts.map +1 -1
- package/dist/foundations/rbac/rbac-permission.module.js +18 -2
- package/dist/foundations/rbac/rbac-permission.module.js.map +1 -1
- package/dist/foundations/rbac/rbac.tokens.d.ts +8 -0
- package/dist/foundations/rbac/rbac.tokens.d.ts.map +1 -1
- package/dist/foundations/rbac/rbac.tokens.js +9 -1
- package/dist/foundations/rbac/rbac.tokens.js.map +1 -1
- package/dist/foundations/rbac/repositories/rbac-permission.repository.d.ts +29 -1
- package/dist/foundations/rbac/repositories/rbac-permission.repository.d.ts.map +1 -1
- package/dist/foundations/rbac/repositories/rbac-permission.repository.js +73 -1
- package/dist/foundations/rbac/repositories/rbac-permission.repository.js.map +1 -1
- package/dist/foundations/rbac/services/module-permission-audit.service.d.ts +34 -0
- package/dist/foundations/rbac/services/module-permission-audit.service.d.ts.map +1 -0
- package/dist/foundations/rbac/services/module-permission-audit.service.js +137 -0
- package/dist/foundations/rbac/services/module-permission-audit.service.js.map +1 -0
- package/dist/foundations/rbac/services/module-permission.gate.d.ts +51 -0
- package/dist/foundations/rbac/services/module-permission.gate.d.ts.map +1 -0
- package/dist/foundations/rbac/services/module-permission.gate.js +108 -0
- package/dist/foundations/rbac/services/module-permission.gate.js.map +1 -0
- package/dist/foundations/rbac/services/module-permission.service.d.ts +34 -0
- package/dist/foundations/rbac/services/module-permission.service.d.ts.map +1 -0
- package/dist/foundations/rbac/services/module-permission.service.js +64 -0
- package/dist/foundations/rbac/services/module-permission.service.js.map +1 -0
- package/dist/foundations/rbac/services/rbac-permission.service.d.ts +10 -1
- package/dist/foundations/rbac/services/rbac-permission.service.d.ts.map +1 -1
- package/dist/foundations/rbac/services/rbac-permission.service.js +32 -2
- package/dist/foundations/rbac/services/rbac-permission.service.js.map +1 -1
- package/dist/foundations/rbac/services/rbac-reconciler.service.d.ts +11 -2
- package/dist/foundations/rbac/services/rbac-reconciler.service.d.ts.map +1 -1
- package/dist/foundations/rbac/services/rbac-reconciler.service.js +19 -6
- package/dist/foundations/rbac/services/rbac-reconciler.service.js.map +1 -1
- package/dist/foundations/referral/controllers/referral.controller.d.ts.map +1 -1
- package/dist/foundations/referral/controllers/referral.controller.js +3 -0
- package/dist/foundations/referral/controllers/referral.controller.js.map +1 -1
- package/dist/foundations/role/controllers/role.controller.d.ts.map +1 -1
- package/dist/foundations/role/controllers/role.controller.js +3 -0
- package/dist/foundations/role/controllers/role.controller.js.map +1 -1
- package/dist/foundations/role/controllers/role.user.controller.d.ts.map +1 -1
- package/dist/foundations/role/controllers/role.user.controller.js +3 -0
- package/dist/foundations/role/controllers/role.user.controller.js.map +1 -1
- package/dist/foundations/s3/controllers/s3.controller.d.ts.map +1 -1
- package/dist/foundations/s3/controllers/s3.controller.js +3 -0
- package/dist/foundations/s3/controllers/s3.controller.js.map +1 -1
- package/dist/foundations/stripe/controllers/billing.controller.d.ts.map +1 -1
- package/dist/foundations/stripe/controllers/billing.controller.js +4 -0
- package/dist/foundations/stripe/controllers/billing.controller.js.map +1 -1
- package/dist/foundations/stripe-customer/controllers/stripe-customer.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-customer/controllers/stripe-customer.controller.js +3 -0
- package/dist/foundations/stripe-customer/controllers/stripe-customer.controller.js.map +1 -1
- package/dist/foundations/stripe-invoice/controllers/stripe-invoice.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-invoice/controllers/stripe-invoice.controller.js +3 -0
- package/dist/foundations/stripe-invoice/controllers/stripe-invoice.controller.js.map +1 -1
- package/dist/foundations/stripe-price/controllers/stripe-price.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-price/controllers/stripe-price.controller.js +3 -0
- package/dist/foundations/stripe-price/controllers/stripe-price.controller.js.map +1 -1
- package/dist/foundations/stripe-product/controllers/stripe-product.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-product/controllers/stripe-product.controller.js +3 -0
- package/dist/foundations/stripe-product/controllers/stripe-product.controller.js.map +1 -1
- package/dist/foundations/stripe-promotion-code/controllers/stripe-promotion-code.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-promotion-code/controllers/stripe-promotion-code.controller.js +4 -0
- package/dist/foundations/stripe-promotion-code/controllers/stripe-promotion-code.controller.js.map +1 -1
- package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js +3 -0
- package/dist/foundations/stripe-subscription/controllers/stripe-subscription.controller.js.map +1 -1
- package/dist/foundations/stripe-usage/controllers/stripe-usage.controller.d.ts.map +1 -1
- package/dist/foundations/stripe-usage/controllers/stripe-usage.controller.js +3 -0
- package/dist/foundations/stripe-usage/controllers/stripe-usage.controller.js.map +1 -1
- package/dist/foundations/tokenusage/controllers/tokenusage.admin.controller.d.ts.map +1 -1
- package/dist/foundations/tokenusage/controllers/tokenusage.admin.controller.js +3 -0
- package/dist/foundations/tokenusage/controllers/tokenusage.admin.controller.js.map +1 -1
- package/dist/foundations/tokenusage/controllers/tokenusage.report.controller.d.ts.map +1 -1
- package/dist/foundations/tokenusage/controllers/tokenusage.report.controller.js +3 -0
- package/dist/foundations/tokenusage/controllers/tokenusage.report.controller.js.map +1 -1
- package/dist/foundations/two-factor/controllers/passkey.controller.d.ts.map +1 -1
- package/dist/foundations/two-factor/controllers/passkey.controller.js +7 -0
- package/dist/foundations/two-factor/controllers/passkey.controller.js.map +1 -1
- package/dist/foundations/two-factor/controllers/totp.controller.d.ts.map +1 -1
- package/dist/foundations/two-factor/controllers/totp.controller.js +6 -0
- package/dist/foundations/two-factor/controllers/totp.controller.js.map +1 -1
- package/dist/foundations/two-factor/controllers/two-factor.controller.d.ts.map +1 -1
- package/dist/foundations/two-factor/controllers/two-factor.controller.js +7 -0
- package/dist/foundations/two-factor/controllers/two-factor.controller.js.map +1 -1
- package/dist/foundations/user/controllers/user.controller.d.ts.map +1 -1
- package/dist/foundations/user/controllers/user.controller.js +3 -0
- package/dist/foundations/user/controllers/user.controller.js.map +1 -1
- package/dist/foundations/waitlist/controllers/waitlist.controller.d.ts.map +1 -1
- package/dist/foundations/waitlist/controllers/waitlist.controller.js +3 -0
- package/dist/foundations/waitlist/controllers/waitlist.controller.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,108 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ModulePermissionGate = void 0;
|
|
16
|
+
exports.rbacActionForHttpMethod = rbacActionForHttpMethod;
|
|
17
|
+
exports.resolveRouteAcl = resolveRouteAcl;
|
|
18
|
+
const common_1 = require("@nestjs/common");
|
|
19
|
+
const core_1 = require("@nestjs/core");
|
|
20
|
+
const nestjs_cls_1 = require("nestjs-cls");
|
|
21
|
+
const module_decorator_1 = require("../../../common/decorators/module.decorator");
|
|
22
|
+
const rbac_tokens_1 = require("../rbac.tokens");
|
|
23
|
+
const module_permission_service_1 = require("./module-permission.service");
|
|
24
|
+
/**
|
|
25
|
+
* HTTP method → permission action. GET/HEAD/OPTIONS read, POST create, PUT/PATCH
|
|
26
|
+
* update, DELETE delete. Anything else is treated as a write (update), so an
|
|
27
|
+
* unexpected verb never slips through as a read.
|
|
28
|
+
*/
|
|
29
|
+
function rbacActionForHttpMethod(method) {
|
|
30
|
+
switch ((method ?? "").toUpperCase()) {
|
|
31
|
+
case "GET":
|
|
32
|
+
case "HEAD":
|
|
33
|
+
case "OPTIONS":
|
|
34
|
+
return "read";
|
|
35
|
+
case "POST":
|
|
36
|
+
return "create";
|
|
37
|
+
case "DELETE":
|
|
38
|
+
return "delete";
|
|
39
|
+
default:
|
|
40
|
+
return "update";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Section and action of a route: the handler `@ModuleACL` wins over the class
|
|
45
|
+
* one, field by field; the action falls back to the HTTP-method mapping.
|
|
46
|
+
*/
|
|
47
|
+
function resolveRouteAcl(params) {
|
|
48
|
+
const module = params.handlerDefinition?.module ?? params.classDefinition?.module;
|
|
49
|
+
const action = params.handlerDefinition?.action ?? params.classDefinition?.action ?? rbacActionForHttpMethod(params.method);
|
|
50
|
+
return { module: module || undefined, action };
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Request-level permission check, run by the session guards (`JwtAuthGuard`,
|
|
54
|
+
* `AdminJwtAuthGuard`, `OptionalJwtAuthGuard`) right after authentication.
|
|
55
|
+
*
|
|
56
|
+
* Off unless the app bootstraps with `permissions: { enforce: true }`: with it
|
|
57
|
+
* off, `assert` returns before reading metadata or touching the database.
|
|
58
|
+
*
|
|
59
|
+
* Rules:
|
|
60
|
+
* - A read with no section is allowed (company scoping still applies).
|
|
61
|
+
* - A write with no section is refused (the boot audit makes this unreachable).
|
|
62
|
+
* - Otherwise the caller's effective permission in the token's company decides:
|
|
63
|
+
* `true` or a record path allows, `false` or absent refuses with 403.
|
|
64
|
+
* - No administrator bypass.
|
|
65
|
+
*/
|
|
66
|
+
let ModulePermissionGate = class ModulePermissionGate {
|
|
67
|
+
constructor(reflector, cls, permissions, enforce) {
|
|
68
|
+
this.reflector = reflector;
|
|
69
|
+
this.cls = cls;
|
|
70
|
+
this.permissions = permissions;
|
|
71
|
+
this.enforce = enforce;
|
|
72
|
+
}
|
|
73
|
+
get enabled() {
|
|
74
|
+
return this.enforce === true;
|
|
75
|
+
}
|
|
76
|
+
async assert(params) {
|
|
77
|
+
if (!this.enabled)
|
|
78
|
+
return;
|
|
79
|
+
const userId = params.request?.user?.userId;
|
|
80
|
+
// No authenticated session (optional guard, anonymous caller): nothing to evaluate.
|
|
81
|
+
if (!userId)
|
|
82
|
+
return;
|
|
83
|
+
const { module, action } = resolveRouteAcl({
|
|
84
|
+
classDefinition: this.reflector.get(module_decorator_1.MODULE_ACL_METADATA, params.context.getClass()),
|
|
85
|
+
handlerDefinition: this.reflector.get(module_decorator_1.MODULE_ACL_METADATA, params.context.getHandler()),
|
|
86
|
+
method: params.request?.method,
|
|
87
|
+
});
|
|
88
|
+
if (!module) {
|
|
89
|
+
if (action === "read")
|
|
90
|
+
return;
|
|
91
|
+
throw new common_1.ForbiddenException();
|
|
92
|
+
}
|
|
93
|
+
const companyId = (this.cls.isActive() ? this.cls.get("companyId") : undefined) ?? undefined;
|
|
94
|
+
const allowed = await this.permissions.allows({ userId, companyId, moduleId: module, action });
|
|
95
|
+
if (!allowed)
|
|
96
|
+
throw new common_1.ForbiddenException();
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
exports.ModulePermissionGate = ModulePermissionGate;
|
|
100
|
+
exports.ModulePermissionGate = ModulePermissionGate = __decorate([
|
|
101
|
+
(0, common_1.Injectable)(),
|
|
102
|
+
__param(3, (0, common_1.Optional)()),
|
|
103
|
+
__param(3, (0, common_1.Inject)(rbac_tokens_1.PERMISSIONS_ENFORCE)),
|
|
104
|
+
__metadata("design:paramtypes", [core_1.Reflector,
|
|
105
|
+
nestjs_cls_1.ClsService,
|
|
106
|
+
module_permission_service_1.ModulePermissionService, Boolean])
|
|
107
|
+
], ModulePermissionGate);
|
|
108
|
+
//# sourceMappingURL=module-permission.gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-permission.gate.js","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/module-permission.gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ClsService } from "nestjs-cls";
|
|
2
|
+
import { RbacPermissionRepository } from "../repositories/rbac-permission.repository";
|
|
3
|
+
import type { EffectivePermissions } from "../repositories/rbac-permission.repository";
|
|
4
|
+
import type { RbacAction } from "./rbac-permission.service";
|
|
5
|
+
export type { EffectivePermissions } from "../repositories/rbac-permission.repository";
|
|
6
|
+
/**
|
|
7
|
+
* Resolves a caller's effective permissions in the token's company, for the
|
|
8
|
+
* request-level permission gate (`ModulePermissionGate`).
|
|
9
|
+
*
|
|
10
|
+
* Mirrors `RbacPermissionService` (same `featureModuleQuery` resolution) with
|
|
11
|
+
* three differences: it binds the token's company instead of the legacy
|
|
12
|
+
* `BELONGS_TO` edge, it keeps record-path values (a string allows at the
|
|
13
|
+
* section level), and it resolves once per request (cached in CLS).
|
|
14
|
+
*
|
|
15
|
+
* No administrator bypass: the platform Administrator is resolved like any
|
|
16
|
+
* role, so its grants must exist in the app's permission table.
|
|
17
|
+
*/
|
|
18
|
+
export declare class ModulePermissionService {
|
|
19
|
+
private readonly repository;
|
|
20
|
+
private readonly cls;
|
|
21
|
+
constructor(repository: RbacPermissionRepository, cls: ClsService);
|
|
22
|
+
resolve(params: {
|
|
23
|
+
userId: string;
|
|
24
|
+
companyId: string | undefined;
|
|
25
|
+
}): Promise<EffectivePermissions>;
|
|
26
|
+
/** True when the effective value is `true` or a non-empty record path. */
|
|
27
|
+
allows(params: {
|
|
28
|
+
userId: string;
|
|
29
|
+
companyId: string | undefined;
|
|
30
|
+
moduleId: string;
|
|
31
|
+
action: RbacAction;
|
|
32
|
+
}): Promise<boolean>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=module-permission.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-permission.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/module-permission.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAUvF;;;;;;;;;;;GAWG;AACH,qBACa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,UAAU,EAAE,wBAAwB,EACpC,GAAG,EAAE,UAAU;IAG5B,OAAO,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBvG,0EAA0E;IACpE,MAAM,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,UAAU,CAAC;KACpB,GAAG,OAAO,CAAC,OAAO,CAAC;CAKrB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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.ModulePermissionService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const nestjs_cls_1 = require("nestjs-cls");
|
|
15
|
+
const rbac_permission_repository_1 = require("../repositories/rbac-permission.repository");
|
|
16
|
+
/** CLS key holding the permissions resolved for the current request. */
|
|
17
|
+
const CLS_KEY = "effectivePermissions";
|
|
18
|
+
/**
|
|
19
|
+
* Resolves a caller's effective permissions in the token's company, for the
|
|
20
|
+
* request-level permission gate (`ModulePermissionGate`).
|
|
21
|
+
*
|
|
22
|
+
* Mirrors `RbacPermissionService` (same `featureModuleQuery` resolution) with
|
|
23
|
+
* three differences: it binds the token's company instead of the legacy
|
|
24
|
+
* `BELONGS_TO` edge, it keeps record-path values (a string allows at the
|
|
25
|
+
* section level), and it resolves once per request (cached in CLS).
|
|
26
|
+
*
|
|
27
|
+
* No administrator bypass: the platform Administrator is resolved like any
|
|
28
|
+
* role, so its grants must exist in the app's permission table.
|
|
29
|
+
*/
|
|
30
|
+
let ModulePermissionService = class ModulePermissionService {
|
|
31
|
+
constructor(repository, cls) {
|
|
32
|
+
this.repository = repository;
|
|
33
|
+
this.cls = cls;
|
|
34
|
+
}
|
|
35
|
+
async resolve(params) {
|
|
36
|
+
const key = `${params.userId}|${params.companyId ?? ""}`;
|
|
37
|
+
const clsActive = this.cls.isActive();
|
|
38
|
+
if (clsActive) {
|
|
39
|
+
const cached = this.cls.get(CLS_KEY);
|
|
40
|
+
if (cached && cached.key === key)
|
|
41
|
+
return cached.permissions;
|
|
42
|
+
}
|
|
43
|
+
const permissions = await this.repository.findEffectivePermissions({
|
|
44
|
+
userId: params.userId,
|
|
45
|
+
companyId: params.companyId || undefined,
|
|
46
|
+
});
|
|
47
|
+
if (clsActive)
|
|
48
|
+
this.cls.set(CLS_KEY, { key, permissions });
|
|
49
|
+
return permissions;
|
|
50
|
+
}
|
|
51
|
+
/** True when the effective value is `true` or a non-empty record path. */
|
|
52
|
+
async allows(params) {
|
|
53
|
+
const permissions = await this.resolve({ userId: params.userId, companyId: params.companyId });
|
|
54
|
+
const value = permissions.get(params.moduleId)?.[params.action];
|
|
55
|
+
return value === true || (typeof value === "string" && value.length > 0);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
exports.ModulePermissionService = ModulePermissionService;
|
|
59
|
+
exports.ModulePermissionService = ModulePermissionService = __decorate([
|
|
60
|
+
(0, common_1.Injectable)(),
|
|
61
|
+
__metadata("design:paramtypes", [rbac_permission_repository_1.RbacPermissionRepository,
|
|
62
|
+
nestjs_cls_1.ClsService])
|
|
63
|
+
], ModulePermissionService);
|
|
64
|
+
//# sourceMappingURL=module-permission.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-permission.service.js","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/module-permission.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAAwC;AACxC,2FAAsF;AAMtF,wEAAwE;AACxE,MAAM,OAAO,GAAG,sBAAsB,CAAC;AAOvC;;;;;;;;;;;GAWG;AAEI,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YACmB,UAAoC,EACpC,GAAe;QADf,eAAU,GAAV,UAAU,CAA0B;QACpC,QAAG,GAAH,GAAG,CAAY;IAC/B,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,MAAyD;QACrE,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEtC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAgC,OAAO,CAAC,CAAC;YACpE,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG;gBAAE,OAAO,MAAM,CAAC,WAAW,CAAC;QAC9D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACjE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;SACzC,CAAC,CAAC;QAEH,IAAI,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAoB,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9E,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,MAAM,CAAC,MAKZ;QACC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/F,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF,CAAA;AApCY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;qCAGoB,qDAAwB;QAC/B,uBAAU;GAHvB,uBAAuB,CAoCnC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { ClsService } from "nestjs-cls";
|
|
1
2
|
import { RbacPermissionRepository } from "../repositories/rbac-permission.repository";
|
|
3
|
+
import { ModulePermissionService } from "./module-permission.service";
|
|
2
4
|
/**
|
|
3
5
|
* The four permission flags resolved per module by the RBAC permission model.
|
|
4
6
|
*
|
|
@@ -13,10 +15,17 @@ export type RbacAction = "read" | "create" | "update" | "delete";
|
|
|
13
15
|
* UserModulesRepository for the chatbot catalog).
|
|
14
16
|
*
|
|
15
17
|
* Consumed by the MCP layer to gate reads and writes per tool call.
|
|
18
|
+
*
|
|
19
|
+
* With `permissions.enforce` on, it delegates to `ModulePermissionService`
|
|
20
|
+
* (token company from CLS, record paths allow) so tool calls and HTTP routes
|
|
21
|
+
* never disagree. With it off, it behaves exactly as before.
|
|
16
22
|
*/
|
|
17
23
|
export declare class RbacPermissionService {
|
|
18
24
|
private readonly repository;
|
|
19
|
-
|
|
25
|
+
private readonly modulePermissions?;
|
|
26
|
+
private readonly cls?;
|
|
27
|
+
private readonly enforce?;
|
|
28
|
+
constructor(repository: RbacPermissionRepository, modulePermissions?: ModulePermissionService, cls?: ClsService, enforce?: boolean);
|
|
20
29
|
/**
|
|
21
30
|
* True iff the user's effective permission flag for `action` on the module
|
|
22
31
|
* resolves to `true`. Unknown modules (not in the user's effective set)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac-permission.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/rbac-permission.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjE
|
|
1
|
+
{"version":3,"file":"rbac-permission.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/rbac-permission.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAEtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,qBACa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IACkB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAHjD,UAAU,EAAE,wBAAwB,EACS,iBAAiB,CAAC,EAAE,uBAAuB,EACxD,GAAG,CAAC,EAAE,UAAU,EACP,OAAO,CAAC,EAAE,OAAO;IAG7E;;;;OAIG;IACG,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAc9F"}
|
|
@@ -8,20 +8,33 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.RbacPermissionService = void 0;
|
|
13
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const nestjs_cls_1 = require("nestjs-cls");
|
|
14
18
|
const rbac_permission_repository_1 = require("../repositories/rbac-permission.repository");
|
|
19
|
+
const rbac_tokens_1 = require("../rbac.tokens");
|
|
20
|
+
const module_permission_service_1 = require("./module-permission.service");
|
|
15
21
|
/**
|
|
16
22
|
* Answers `can(userId, moduleId, action)` using the same `featureModuleQuery`
|
|
17
23
|
* permission resolution as the rest of the app (AuthRepository at login,
|
|
18
24
|
* UserModulesRepository for the chatbot catalog).
|
|
19
25
|
*
|
|
20
26
|
* Consumed by the MCP layer to gate reads and writes per tool call.
|
|
27
|
+
*
|
|
28
|
+
* With `permissions.enforce` on, it delegates to `ModulePermissionService`
|
|
29
|
+
* (token company from CLS, record paths allow) so tool calls and HTTP routes
|
|
30
|
+
* never disagree. With it off, it behaves exactly as before.
|
|
21
31
|
*/
|
|
22
32
|
let RbacPermissionService = class RbacPermissionService {
|
|
23
|
-
constructor(repository) {
|
|
33
|
+
constructor(repository, modulePermissions, cls, enforce) {
|
|
24
34
|
this.repository = repository;
|
|
35
|
+
this.modulePermissions = modulePermissions;
|
|
36
|
+
this.cls = cls;
|
|
37
|
+
this.enforce = enforce;
|
|
25
38
|
}
|
|
26
39
|
/**
|
|
27
40
|
* True iff the user's effective permission flag for `action` on the module
|
|
@@ -29,6 +42,15 @@ let RbacPermissionService = class RbacPermissionService {
|
|
|
29
42
|
* always deny.
|
|
30
43
|
*/
|
|
31
44
|
async can(params) {
|
|
45
|
+
if (this.enforce === true && this.modulePermissions) {
|
|
46
|
+
const companyId = this.cls?.isActive() ? (this.cls.get("companyId") ?? undefined) : undefined;
|
|
47
|
+
return this.modulePermissions.allows({
|
|
48
|
+
userId: params.userId,
|
|
49
|
+
companyId,
|
|
50
|
+
moduleId: params.moduleId,
|
|
51
|
+
action: params.action,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
32
54
|
const perms = await this.repository.findEffectivePermissionsForUser(params.userId);
|
|
33
55
|
return perms.get(params.moduleId)?.[params.action] === true;
|
|
34
56
|
}
|
|
@@ -36,6 +58,14 @@ let RbacPermissionService = class RbacPermissionService {
|
|
|
36
58
|
exports.RbacPermissionService = RbacPermissionService;
|
|
37
59
|
exports.RbacPermissionService = RbacPermissionService = __decorate([
|
|
38
60
|
(0, common_1.Injectable)(),
|
|
39
|
-
|
|
61
|
+
__param(1, (0, common_1.Optional)()),
|
|
62
|
+
__param(1, (0, common_1.Inject)(module_permission_service_1.ModulePermissionService)),
|
|
63
|
+
__param(2, (0, common_1.Optional)()),
|
|
64
|
+
__param(2, (0, common_1.Inject)(nestjs_cls_1.ClsService)),
|
|
65
|
+
__param(3, (0, common_1.Optional)()),
|
|
66
|
+
__param(3, (0, common_1.Inject)(rbac_tokens_1.PERMISSIONS_ENFORCE)),
|
|
67
|
+
__metadata("design:paramtypes", [rbac_permission_repository_1.RbacPermissionRepository,
|
|
68
|
+
module_permission_service_1.ModulePermissionService,
|
|
69
|
+
nestjs_cls_1.ClsService, Boolean])
|
|
40
70
|
], RbacPermissionService);
|
|
41
71
|
//# sourceMappingURL=rbac-permission.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac-permission.service.js","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/rbac-permission.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rbac-permission.service.js","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/rbac-permission.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,2CAAwC;AACxC,2FAAsF;AACtF,gDAAqD;AACrD,2EAAsE;AAWtE;;;;;;;;;;GAUG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,YACmB,UAAoC,EACS,iBAA2C,EACxD,GAAgB,EACP,OAAiB;QAH1D,eAAU,GAAV,UAAU,CAA0B;QACS,sBAAiB,GAAjB,iBAAiB,CAA0B;QACxD,QAAG,GAAH,GAAG,CAAa;QACP,YAAO,GAAP,OAAO,CAAU;IAC1E,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,MAAgE;QACxE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,MAAM,SAAS,GAAuB,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClH,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBACnC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9D,CAAC;CACF,CAAA;AA3BY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,mDAAuB,CAAC,CAAA;IAC3C,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,uBAAU,CAAC,CAAA;IAC9B,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,iCAAmB,CAAC,CAAA;qCAHX,qDAAwB;QAC6B,mDAAuB;QAClD,uBAAU;GAJxD,qBAAqB,CA2BjC"}
|
|
@@ -7,7 +7,9 @@ import type { RbacMatrix } from "../dsl/types";
|
|
|
7
7
|
*
|
|
8
8
|
* Behaviour (per spec §6.3):
|
|
9
9
|
* - Administrator role is never written as an HAS_PERMISSIONS edge — the
|
|
10
|
-
* security layer short-circuits for it.
|
|
10
|
+
* security layer short-circuits for it. Exception: with
|
|
11
|
+
* `permissions.enforce` on (no administrator bypass in the request gate)
|
|
12
|
+
* its edges are reconciled like any other role's.
|
|
11
13
|
* - Module defaults are stored on `Module.permissions`.
|
|
12
14
|
* - Role-specific permissions are stored on `(Role)-[:HAS_PERMISSIONS]->(Module)`.
|
|
13
15
|
* - Deletions are scoped to modules declared in the matrix: edges for
|
|
@@ -19,7 +21,14 @@ export declare class RbacReconcilerService implements OnApplicationBootstrap {
|
|
|
19
21
|
private readonly neo4j;
|
|
20
22
|
private readonly matrix;
|
|
21
23
|
private readonly logger;
|
|
22
|
-
|
|
24
|
+
private readonly enforce?;
|
|
25
|
+
constructor(neo4j: Neo4jService, matrix: RbacMatrix | null, logger: AppLoggingService, enforce?: boolean);
|
|
26
|
+
/**
|
|
27
|
+
* The Administrator role is skipped (never written, never deleted) unless the
|
|
28
|
+
* request permission gate is on: the gate has no administrator bypass, so the
|
|
29
|
+
* Administrator's grants must then be reconciled like any other role's.
|
|
30
|
+
*/
|
|
31
|
+
private skipsRole;
|
|
23
32
|
onApplicationBootstrap(): Promise<void>;
|
|
24
33
|
private preflight;
|
|
25
34
|
private findMissing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac-reconciler.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/rbac-reconciler.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAGnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAe/C
|
|
1
|
+
{"version":3,"file":"rbac-reconciler.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/rbac-reconciler.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAGnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAe/C;;;;;;;;;;;;;;GAcG;AACH,qBACa,qBAAsB,YAAW,sBAAsB;IAEhE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACiB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACkB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAHjD,KAAK,EAAE,YAAY,EACoB,MAAM,EAAE,UAAU,GAAG,IAAI,EAChE,MAAM,EAAE,iBAAiB,EACgB,OAAO,CAAC,EAAE,OAAO;IAG7E;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAIX,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;YAsB/B,SAAS;YAyBT,WAAW;YAOX,eAAe;IAsB7B,OAAO,CAAC,WAAW;YAkEL,KAAK;CA4BpB"}
|
|
@@ -25,7 +25,9 @@ const ADMINISTRATOR_ID = system_roles_1.SystemRoles.Administrator;
|
|
|
25
25
|
*
|
|
26
26
|
* Behaviour (per spec §6.3):
|
|
27
27
|
* - Administrator role is never written as an HAS_PERMISSIONS edge — the
|
|
28
|
-
* security layer short-circuits for it.
|
|
28
|
+
* security layer short-circuits for it. Exception: with
|
|
29
|
+
* `permissions.enforce` on (no administrator bypass in the request gate)
|
|
30
|
+
* its edges are reconciled like any other role's.
|
|
29
31
|
* - Module defaults are stored on `Module.permissions`.
|
|
30
32
|
* - Role-specific permissions are stored on `(Role)-[:HAS_PERMISSIONS]->(Module)`.
|
|
31
33
|
* - Deletions are scoped to modules declared in the matrix: edges for
|
|
@@ -34,10 +36,19 @@ const ADMINISTRATOR_ID = system_roles_1.SystemRoles.Administrator;
|
|
|
34
36
|
* missing from the DB (seed migrations must run first).
|
|
35
37
|
*/
|
|
36
38
|
let RbacReconcilerService = class RbacReconcilerService {
|
|
37
|
-
constructor(neo4j, matrix, logger) {
|
|
39
|
+
constructor(neo4j, matrix, logger, enforce) {
|
|
38
40
|
this.neo4j = neo4j;
|
|
39
41
|
this.matrix = matrix;
|
|
40
42
|
this.logger = logger;
|
|
43
|
+
this.enforce = enforce;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The Administrator role is skipped (never written, never deleted) unless the
|
|
47
|
+
* request permission gate is on: the gate has no administrator bypass, so the
|
|
48
|
+
* Administrator's grants must then be reconciled like any other role's.
|
|
49
|
+
*/
|
|
50
|
+
skipsRole(roleId) {
|
|
51
|
+
return this.enforce !== true && roleId === ADMINISTRATOR_ID;
|
|
41
52
|
}
|
|
42
53
|
async onApplicationBootstrap() {
|
|
43
54
|
if (!this.matrix) {
|
|
@@ -61,7 +72,7 @@ let RbacReconcilerService = class RbacReconcilerService {
|
|
|
61
72
|
moduleIds.add(moduleId);
|
|
62
73
|
}
|
|
63
74
|
for (const { roleId } of (0, resolver_1.iterateDeclaredEdges)(this.matrix)) {
|
|
64
|
-
if (roleId
|
|
75
|
+
if (this.skipsRole(roleId))
|
|
65
76
|
continue;
|
|
66
77
|
roleIds.add(roleId);
|
|
67
78
|
}
|
|
@@ -118,7 +129,7 @@ let RbacReconcilerService = class RbacReconcilerService {
|
|
|
118
129
|
// Edges — expected (Administrator excluded)
|
|
119
130
|
const expectedEdgeKeys = new Set();
|
|
120
131
|
const sortedEdges = Array.from((0, resolver_1.iterateDeclaredEdges)(this.matrix))
|
|
121
|
-
.filter((e) => e.roleId
|
|
132
|
+
.filter((e) => !this.skipsRole(e.roleId))
|
|
122
133
|
.sort((a, b) => (a.moduleId + a.roleId).localeCompare(b.moduleId + b.roleId));
|
|
123
134
|
const actualByKey = new Map();
|
|
124
135
|
for (const edge of actual.edges) {
|
|
@@ -142,7 +153,7 @@ let RbacReconcilerService = class RbacReconcilerService {
|
|
|
142
153
|
for (const edge of actual.edges) {
|
|
143
154
|
if (!declaredModules.has(edge.moduleId))
|
|
144
155
|
continue;
|
|
145
|
-
if (edge.roleId
|
|
156
|
+
if (this.skipsRole(edge.roleId))
|
|
146
157
|
continue;
|
|
147
158
|
const key = `${edge.roleId}|${edge.moduleId}`;
|
|
148
159
|
if (!expectedEdgeKeys.has(key)) {
|
|
@@ -187,6 +198,8 @@ exports.RbacReconcilerService = RbacReconcilerService = __decorate([
|
|
|
187
198
|
(0, common_1.Injectable)(),
|
|
188
199
|
__param(1, (0, common_1.Optional)()),
|
|
189
200
|
__param(1, (0, common_1.Inject)(rbac_tokens_1.RBAC_MATRIX_TOKEN)),
|
|
190
|
-
|
|
201
|
+
__param(3, (0, common_1.Optional)()),
|
|
202
|
+
__param(3, (0, common_1.Inject)(rbac_tokens_1.PERMISSIONS_ENFORCE)),
|
|
203
|
+
__metadata("design:paramtypes", [neo4j_service_1.Neo4jService, Object, logging_service_1.AppLoggingService, Boolean])
|
|
191
204
|
], RbacReconcilerService);
|
|
192
205
|
//# sourceMappingURL=rbac-reconciler.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rbac-reconciler.service.js","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/rbac-reconciler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAsF;AACtF,8EAA0E;AAC1E,oFAAmF;AACnF,yEAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"rbac-reconciler.service.js","sourceRoot":"","sources":["../../../../src/foundations/rbac/services/rbac-reconciler.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referral.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/referral/controllers/referral.controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAmB,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"referral.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/referral/controllers/referral.controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAmB,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAI/D,qBAGa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAD/B,eAAe,EAAE,eAAe,EACP,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC;IAGlF;;;OAGG;IACH,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IAEG,SAAS,CAAQ,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D;;;OAGG;IAGG,UAAU,CAAQ,KAAK,EAAE,YAAY,EAAU,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5F;;;OAGG;IAEG,QAAQ,CAAQ,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1D"}
|
|
@@ -19,6 +19,8 @@ const referral_invite_dto_1 = require("../dtos/referral-invite.dto");
|
|
|
19
19
|
const referral_meta_1 = require("../entities/referral.meta");
|
|
20
20
|
const referral_config_interface_1 = require("../interfaces/referral.config.interface");
|
|
21
21
|
const referral_service_1 = require("../services/referral.service");
|
|
22
|
+
const module_decorator_1 = require("../../../common/decorators/module.decorator");
|
|
23
|
+
const core_module_ids_1 = require("../../../common/constants/core-module.ids");
|
|
22
24
|
let ReferralController = class ReferralController {
|
|
23
25
|
constructor(referralService, config) {
|
|
24
26
|
this.referralService = referralService;
|
|
@@ -87,6 +89,7 @@ __decorate([
|
|
|
87
89
|
], ReferralController.prototype, "getStats", null);
|
|
88
90
|
exports.ReferralController = ReferralController = __decorate([
|
|
89
91
|
(0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
|
|
92
|
+
(0, module_decorator_1.ModuleACL)({ module: core_module_ids_1.CoreModuleId.Referral }),
|
|
90
93
|
(0, common_1.Controller)(),
|
|
91
94
|
__param(1, (0, common_1.Inject)(referral_config_interface_1.REFERRAL_CONFIG)),
|
|
92
95
|
__metadata("design:paramtypes", [referral_service_1.ReferralService, Object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"referral.controller.js","sourceRoot":"","sources":["../../../../src/foundations/referral/controllers/referral.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAWwB;AAGxB,0EAAqE;AACrE,qEAAgE;AAChE,6DAAyD;AACzD,uFAAgG;AAChG,mEAA+D;
|
|
1
|
+
{"version":3,"file":"referral.controller.js","sourceRoot":"","sources":["../../../../src/foundations/referral/controllers/referral.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAWwB;AAGxB,0EAAqE;AACrE,qEAAgE;AAChE,6DAAyD;AACzD,uFAAgG;AAChG,mEAA+D;AAC/D,kFAAwE;AACxE,+EAAyE;AAKlE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YACmB,eAAgC,EACP,MAAsC;QAD/D,oBAAe,GAAf,eAAe,CAAiB;QACP,WAAM,GAAN,MAAM,CAAgC;IAC/E,CAAC;IAEJ;;;OAGG;IACK,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,0BAAiB,CAAC,iCAAiC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;OAGG;IAEG,AAAN,KAAK,CAAC,SAAS,CAAQ,KAAmB;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED;;;OAGG;IAGG,AAAN,KAAK,CAAC,UAAU,CAAQ,KAAmB,EAAU,IAAuB;QAC1E,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAED;;;OAGG;IAEG,AAAN,KAAK,CAAC,QAAQ,CAAQ,KAAmB;QACvC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;CACF,CAAA;AAjDY,gDAAkB;AAqBvB;IADL,IAAA,YAAG,EAAC,GAAG,4BAAY,CAAC,QAAQ,UAAU,CAAC;IACvB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;mDAIrB;AAQK;IAFL,IAAA,aAAI,EAAC,GAAG,4BAAY,CAAC,QAAQ,SAAS,CAAC;IACvC,IAAA,iBAAQ,EAAC,mBAAU,CAAC,UAAU,CAAC;IACd,WAAA,IAAA,YAAG,GAAE,CAAA;IAAuB,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAO,uCAAiB;;oDAI3E;AAOK;IADL,IAAA,YAAG,EAAC,GAAG,4BAAY,CAAC,QAAQ,QAAQ,CAAC;IACtB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;kDAIpB;6BAhDU,kBAAkB;IAH9B,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,4BAAS,EAAC,EAAE,MAAM,EAAE,8BAAY,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,eAAM,EAAC,2CAAe,CAAC,CAAA;qCADU,kCAAe;GAFxC,kBAAkB,CAiD9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/role/controllers/role.controller.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"role.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/role/controllers/role.controller.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,qBAEa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY;IAMvC,IAAI,CAAU,KAAK,EAAE,GAAG,EAAmB,MAAM,CAAC,EAAE,MAAM;IAQ1D,QAAQ,CAAkB,MAAM,EAAE,MAAM;IAWxC,MAAM,CAAS,IAAI,EAAE,WAAW;IAchC,MAAM,CAAS,IAAI,EAAE,WAAW,EAAmB,MAAM,EAAE,MAAM;IAcjE,MAAM,CAAkB,MAAM,EAAE,MAAM;CAK7C"}
|
|
@@ -23,6 +23,8 @@ const audit_service_1 = require("../../audit/services/audit.service");
|
|
|
23
23
|
const role_post_dto_1 = require("../../role/dtos/role.post.dto");
|
|
24
24
|
const role_meta_1 = require("../../role/entities/role.meta");
|
|
25
25
|
const role_service_1 = require("../services/role.service");
|
|
26
|
+
const module_decorator_1 = require("../../../common/decorators/module.decorator");
|
|
27
|
+
const core_module_ids_1 = require("../../../common/constants/core-module.ids");
|
|
26
28
|
let RoleController = class RoleController {
|
|
27
29
|
constructor(roleService, auditService, cacheService) {
|
|
28
30
|
this.roleService = roleService;
|
|
@@ -115,6 +117,7 @@ __decorate([
|
|
|
115
117
|
__metadata("design:returntype", Promise)
|
|
116
118
|
], RoleController.prototype, "delete", null);
|
|
117
119
|
exports.RoleController = RoleController = __decorate([
|
|
120
|
+
(0, module_decorator_1.ModuleACL)({ module: core_module_ids_1.CoreModuleId.Role }),
|
|
118
121
|
(0, common_1.Controller)(role_meta_1.roleMeta.endpoint),
|
|
119
122
|
__metadata("design:paramtypes", [role_service_1.RoleService,
|
|
120
123
|
audit_service_1.AuditService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.controller.js","sourceRoot":"","sources":["../../../../src/foundations/role/controllers/role.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAawB;AAExB,yEAAgE;AAChE,2DAAoE;AACpE,gFAAmE;AACnE,0EAAqE;AACrE,8EAA0E;AAC1E,sEAAkE;AAClE,iEAA4D;AAC5D,6DAAyD;AACzD,2DAAuD;
|
|
1
|
+
{"version":3,"file":"role.controller.js","sourceRoot":"","sources":["../../../../src/foundations/role/controllers/role.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAawB;AAExB,yEAAgE;AAChE,2DAAoE;AACpE,gFAAmE;AACnE,0EAAqE;AACrE,8EAA0E;AAC1E,sEAAkE;AAClE,iEAA4D;AAC5D,6DAAyD;AACzD,2DAAuD;AACvD,kFAAwE;AACxE,+EAAyE;AAIlE,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YACmB,WAAwB,EACxB,YAA0B,EAC1B,YAA0B;QAF1B,gBAAW,GAAX,WAAW,CAAa;QACxB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAc;IAC1C,CAAC;IAKE,AAAN,KAAK,CAAC,IAAI,CAAU,KAAU,EAAmB,MAAe;QAC9D,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAMK,AAAN,KAAK,CAAC,QAAQ,CAAkB,MAAc;QAC5C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,uEAAuE;IAKjE,AAAN,KAAK,CAAC,MAAM,CAAS,IAAiB;QACpC,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;SAChC,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAMK,AAAN,KAAK,CAAC,MAAM,CAAS,IAAiB,EAAmB,MAAc;QACrE,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;YACzB,MAAM,IAAI,sBAAa,CAAC,0CAA0C,EAAE,mBAAU,CAAC,mBAAmB,CAAC,CAAC;QAEtG,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAOK,AAAN,KAAK,CAAC,MAAM,CAAkB,MAAc;QAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA9DY,wCAAc;AAUnB;IAHL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACxB,gEAAgE;;IAC/D,IAAA,YAAG,GAAE;IACM,WAAA,IAAA,cAAK,GAAE,CAAA;IAAc,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;0CAE/C;AAMK;IAJL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACxB,gEAAgE;;IAC/D,IAAA,YAAG,EAAC,SAAS,CAAC;IACd,IAAA,kBAAK,EAAC,oBAAQ,EAAE,QAAQ,CAAC;IACV,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;8CAE9B;AASK;IAJL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,uBAAK,EAAC,qBAAM,CAAC,aAAa,CAAC;IAC3B,IAAA,aAAI,GAAE;IACN,IAAA,4BAAe,EAAC,oBAAQ,CAAC;IACZ,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAO,2BAAW;;4CAQrC;AAMK;IAJL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,uBAAK,EAAC,qBAAM,CAAC,aAAa,CAAC;IAC3B,IAAA,YAAG,EAAC,SAAS,CAAC;IACd,IAAA,4BAAe,EAAC,oBAAQ,EAAE,QAAQ,CAAC;IACtB,WAAA,IAAA,aAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;qCAA7B,2BAAW;;4CAOrC;AAOK;IALL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,uBAAK,EAAC,qBAAM,CAAC,aAAa,CAAC;IAC3B,IAAA,iBAAQ,EAAC,mBAAU,CAAC,UAAU,CAAC;IAC/B,IAAA,eAAM,EAAC,SAAS,CAAC;IACjB,IAAA,4BAAe,EAAC,oBAAQ,EAAE,QAAQ,CAAC;IACtB,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;4CAI5B;yBA7DU,cAAc;IAF1B,IAAA,4BAAS,EAAC,EAAE,MAAM,EAAE,8BAAY,CAAC,IAAI,EAAE,CAAC;IACxC,IAAA,mBAAU,EAAC,oBAAQ,CAAC,QAAQ,CAAC;qCAGI,0BAAW;QACV,4BAAY;QACZ,4BAAY;GAJlC,cAAc,CA8D1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.user.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/role/controllers/role.user.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAGnF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"role.user.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/role/controllers/role.user.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAGnF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAK/D,qBAEa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,eAAe;IAKtC,YAAY,CACL,GAAG,EAAE,GAAG,EACV,KAAK,EAAE,GAAG,EACF,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO;CAe1C"}
|
|
@@ -19,6 +19,8 @@ const security_service_1 = require("../../../core/security/services/security.ser
|
|
|
19
19
|
const role_meta_1 = require("../../role/entities/role.meta");
|
|
20
20
|
const role_service_1 = require("../../role/services/role.service");
|
|
21
21
|
const user_meta_1 = require("../../user/entities/user.meta");
|
|
22
|
+
const module_decorator_1 = require("../../../common/decorators/module.decorator");
|
|
23
|
+
const core_module_ids_1 = require("../../../common/constants/core-module.ids");
|
|
22
24
|
let RoleUserController = class RoleUserController {
|
|
23
25
|
constructor(roleServide, security) {
|
|
24
26
|
this.roleServide = roleServide;
|
|
@@ -52,6 +54,7 @@ __decorate([
|
|
|
52
54
|
__metadata("design:returntype", Promise)
|
|
53
55
|
], RoleUserController.prototype, "findBySearch", null);
|
|
54
56
|
exports.RoleUserController = RoleUserController = __decorate([
|
|
57
|
+
(0, module_decorator_1.ModuleACL)({ module: core_module_ids_1.CoreModuleId.Role }),
|
|
55
58
|
(0, common_1.Controller)(user_meta_1.userMeta.endpoint),
|
|
56
59
|
__metadata("design:paramtypes", [role_service_1.RoleService,
|
|
57
60
|
security_service_1.SecurityService])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.user.controller.js","sourceRoot":"","sources":["../../../../src/foundations/role/controllers/role.user.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmF;AAEnF,0EAAqE;AACrE,uFAAmF;AACnF,6DAAyD;AAEzD,mEAA+D;AAC/D,6DAAyD;
|
|
1
|
+
{"version":3,"file":"role.user.controller.js","sourceRoot":"","sources":["../../../../src/foundations/role/controllers/role.user.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAmF;AAEnF,0EAAqE;AACrE,uFAAmF;AACnF,6DAAyD;AAEzD,mEAA+D;AAC/D,6DAAyD;AACzD,kFAAwE;AACxE,+EAAyE;AAIlE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YACmB,WAAwB,EACxB,QAAyB;QADzB,gBAAW,GAAX,WAAW,CAAa;QACxB,aAAQ,GAAR,QAAQ,CAAiB;IACzC,CAAC;IAIE,AAAN,KAAK,CAAC,YAAY,CACL,GAAQ,EACV,KAAU,EACF,MAAc,EACd,MAAe,EACZ,SAAmB;QAEvC,IAAI,SAAS;YACX,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;gBAC1C,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QAEL,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YACxC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA5BY,gDAAkB;AAQvB;IAFL,IAAA,kBAAS,EAAC,6BAAY,CAAC;IACvB,IAAA,YAAG,EAAC,WAAW,oBAAQ,CAAC,QAAQ,EAAE,CAAC;IAEjC,WAAA,IAAA,gBAAO,GAAE,CAAA;IACT,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,WAAW,CAAC,CAAA;;;;sDAcpB;6BA3BU,kBAAkB;IAF9B,IAAA,4BAAS,EAAC,EAAE,MAAM,EAAE,8BAAY,CAAC,IAAI,EAAE,CAAC;IACxC,IAAA,mBAAU,EAAC,oBAAQ,CAAC,QAAQ,CAAC;qCAGI,0BAAW;QACd,kCAAe;GAHjC,kBAAkB,CA4B9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/s3/controllers/s3.controller.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIvD,OAAO,EAGL,iBAAiB,EAClB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAEL,sBAAsB,EACvB,MAAM,kEAAkE,CAAC;AAS1E,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"s3.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/s3/controllers/s3.controller.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIvD,OAAO,EAGL,iBAAiB,EAClB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAEL,sBAAsB,EACvB,MAAM,kEAAkE,CAAC;AAS1E,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAOzD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAQtD,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,MAAM,CAI9D,CAAC;AAOH,qBAEa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAG3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAK3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAZf,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAEjD,UAAU,EAAE,kBAAkB,EAG9B,SAAS,CAAC,EAAE,iBAAiB,EAK7B,cAAc,CAAC,EAAE,sBAAsB;IAKpD,eAAe,CACL,GAAG,EAAE,MAAM,EACH,WAAW,EAAE,MAAM,EACtB,QAAQ,EAAE,OAAO;IAgBhC,YAAY,CACF,GAAG,EAAE,MAAM,EACN,QAAQ,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,MAAM;IAchC,UAAU,CAAe,GAAG,EAAE,MAAM;IAM1C;;;OAGG;IAEG,SAAS,CACN,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,YAAY,EACV,KAAK,EAAE,MAAM,GAC5B,OAAO,CAAC,IAAI,CAAC;IAwChB;;OAEG;IAEG,SAAS,CAAQ,KAAK,EAAE,YAAY,EAAkB,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCzF;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;OAIG;YACW,eAAe;IAiB7B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;CAwBrB"}
|
|
@@ -24,6 +24,8 @@ const s3_meta_1 = require("../../s3/entities/s3.meta");
|
|
|
24
24
|
const s3_cipher_service_1 = require("../../s3/services/s3-cipher.service");
|
|
25
25
|
const s3_client_key_service_1 = require("../../s3/services/s3-client-key.service");
|
|
26
26
|
const s3_service_1 = require("../../s3/services/s3.service");
|
|
27
|
+
const module_decorator_1 = require("../../../common/decorators/module.decorator");
|
|
28
|
+
const core_module_ids_1 = require("../../../common/constants/core-module.ids");
|
|
27
29
|
/** How long the browser keeps a file reached through a permanent (non-expiring) link. */
|
|
28
30
|
const PERMANENT_LINK_CACHE_SECONDS = 3600;
|
|
29
31
|
/**
|
|
@@ -303,6 +305,7 @@ __decorate([
|
|
|
303
305
|
__metadata("design:returntype", Promise)
|
|
304
306
|
], S3Controller.prototype, "getObject", null);
|
|
305
307
|
exports.S3Controller = S3Controller = __decorate([
|
|
308
|
+
(0, module_decorator_1.ModuleACL)({ module: core_module_ids_1.CoreModuleId.S3 }),
|
|
306
309
|
(0, common_1.Controller)(s3_meta_1.s3Meta.endpoint),
|
|
307
310
|
__param(4, (0, common_1.Optional)()),
|
|
308
311
|
__param(4, (0, common_1.Inject)(s3_key_access_policy_interface_1.S3_KEY_ACCESS_POLICY)),
|