@apipass/cerbos-pep 0.0.67 → 0.0.68
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/lib/cerbos.interceptor.d.ts +5 -1
- package/lib/cerbos.interceptor.js +16 -11
- package/lib/cerbos.interceptor.js.map +1 -1
- package/lib/cerbos.module.d.ts +7 -0
- package/lib/cerbos.module.js +33 -0
- package/lib/cerbos.module.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { type NestInterceptor, type ExecutionContext, type CallHandler } from '@nestjs/common';
|
|
2
2
|
import { Reflector } from '@nestjs/core';
|
|
3
3
|
import { type Observable } from 'rxjs';
|
|
4
|
+
import type { CerbosModuleOptions } from './cerbos.module';
|
|
4
5
|
export declare class CerbosInterceptor implements NestInterceptor {
|
|
5
6
|
private readonly reflector;
|
|
6
|
-
|
|
7
|
+
private readonly config;
|
|
8
|
+
private cerbosInstance;
|
|
9
|
+
constructor(reflector: Reflector, config: CerbosModuleOptions);
|
|
10
|
+
private getCerbos;
|
|
7
11
|
intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<any>>;
|
|
8
12
|
}
|
|
@@ -8,22 +8,26 @@ 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.CerbosInterceptor = void 0;
|
|
13
16
|
const common_1 = require("@nestjs/common");
|
|
14
17
|
const core_1 = require("@nestjs/core");
|
|
15
18
|
const cerbos_decorator_1 = require("./cerbos.decorator");
|
|
16
|
-
let cerbosInstance = null;
|
|
17
|
-
async function getCerbos() {
|
|
18
|
-
if (!cerbosInstance) {
|
|
19
|
-
const { HTTP: Cerbos } = (await import('@cerbos/http'));
|
|
20
|
-
cerbosInstance = new Cerbos('http://127.0.0.1:3592');
|
|
21
|
-
}
|
|
22
|
-
return cerbosInstance;
|
|
23
|
-
}
|
|
24
19
|
let CerbosInterceptor = class CerbosInterceptor {
|
|
25
|
-
constructor(reflector) {
|
|
20
|
+
constructor(reflector, config) {
|
|
26
21
|
this.reflector = reflector;
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.cerbosInstance = null;
|
|
24
|
+
}
|
|
25
|
+
async getCerbos() {
|
|
26
|
+
if (!this.cerbosInstance) {
|
|
27
|
+
const { HTTP: Cerbos } = (await import('@cerbos/http'));
|
|
28
|
+
this.cerbosInstance = new Cerbos(this.config.url);
|
|
29
|
+
}
|
|
30
|
+
return this.cerbosInstance;
|
|
27
31
|
}
|
|
28
32
|
async intercept(context, next) {
|
|
29
33
|
const permission = this.reflector.getAllAndOverride(cerbos_decorator_1.CERBOS_METADATA_KEY, [context.getHandler(), context.getClass()]);
|
|
@@ -51,7 +55,7 @@ let CerbosInterceptor = class CerbosInterceptor {
|
|
|
51
55
|
actions: permission.actions
|
|
52
56
|
};
|
|
53
57
|
try {
|
|
54
|
-
const cerbos = await getCerbos();
|
|
58
|
+
const cerbos = await this.getCerbos();
|
|
55
59
|
const result = await cerbos.checkResource(cerbosRequest);
|
|
56
60
|
const allowed = permission.actions.every((action) => result.isAllowed(action));
|
|
57
61
|
if (!allowed) {
|
|
@@ -69,6 +73,7 @@ let CerbosInterceptor = class CerbosInterceptor {
|
|
|
69
73
|
exports.CerbosInterceptor = CerbosInterceptor;
|
|
70
74
|
exports.CerbosInterceptor = CerbosInterceptor = __decorate([
|
|
71
75
|
(0, common_1.Injectable)(),
|
|
72
|
-
|
|
76
|
+
__param(1, (0, common_1.Inject)('CERBOS_PDP_URL')),
|
|
77
|
+
__metadata("design:paramtypes", [core_1.Reflector, Object])
|
|
73
78
|
], CerbosInterceptor);
|
|
74
79
|
//# sourceMappingURL=cerbos.interceptor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cerbos.interceptor.js","sourceRoot":"","sources":["../src/cerbos.interceptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cerbos.interceptor.js","sourceRoot":"","sources":["../src/cerbos.interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 CerbosModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.CerbosModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const cerbos_interceptor_1 = require("./cerbos.interceptor");
|
|
13
|
+
let CerbosModule = CerbosModule_1 = class CerbosModule {
|
|
14
|
+
static register(options) {
|
|
15
|
+
return {
|
|
16
|
+
module: CerbosModule_1,
|
|
17
|
+
providers: [
|
|
18
|
+
{
|
|
19
|
+
provide: 'CERBOS_PDP_URL',
|
|
20
|
+
useValue: options,
|
|
21
|
+
},
|
|
22
|
+
cerbos_interceptor_1.CerbosInterceptor,
|
|
23
|
+
],
|
|
24
|
+
exports: [cerbos_interceptor_1.CerbosInterceptor, 'CERBOS_PDP_URL'],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.CerbosModule = CerbosModule;
|
|
29
|
+
exports.CerbosModule = CerbosModule = CerbosModule_1 = __decorate([
|
|
30
|
+
(0, common_1.Global)(),
|
|
31
|
+
(0, common_1.Module)({})
|
|
32
|
+
], CerbosModule);
|
|
33
|
+
//# sourceMappingURL=cerbos.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cerbos.module.js","sourceRoot":"","sources":["../src/cerbos.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+D;AAC/D,6DAAyD;AAQlD,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB,MAAM,CAAC,QAAQ,CAAC,OAA4B;QAC1C,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,gBAAgB;oBACzB,QAAQ,EAAE,OAAO;iBAClB;gBACD,sCAAiB;aAClB;YACD,OAAO,EAAE,CAAC,sCAAiB,EAAE,gBAAgB,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF,CAAA;AAdY,oCAAY;uBAAZ,YAAY;IAFxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,YAAY,CAcxB"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./cerbos.decorator"), exports);
|
|
18
18
|
__exportStar(require("./cerbos.interceptor"), exports);
|
|
19
|
+
__exportStar(require("./cerbos.module"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,uDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,uDAAoC;AACpC,kDAA+B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apipass/cerbos-pep",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.68",
|
|
4
4
|
"description": "Cerbos PEP utility for NestJS",
|
|
5
5
|
"author": "Junie",
|
|
6
6
|
"license": "ISC",
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
"@nestjs/common": "10.4.15",
|
|
29
29
|
"@nestjs/core": "10.4.15"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "799157044fa9338b6aec0831917aa9176be430c9"
|
|
32
32
|
}
|