@nest-boot/permission 7.2.1 → 8.0.0-beta.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/decorators/can.decorator.d.ts +4 -4
- package/dist/decorators/can.decorator.js +5 -8
- package/dist/decorators/can.decorator.js.map +1 -1
- package/dist/enums/permission-action.enum.js +2 -5
- package/dist/enums/permission-action.enum.js.map +1 -1
- package/dist/index.d.ts +16 -16
- package/dist/index.js +16 -32
- package/dist/index.js.map +1 -1
- package/dist/interfaces/can-options.interface.d.ts +2 -2
- package/dist/interfaces/can-options.interface.js +1 -2
- package/dist/interfaces/permission-module-options.interface.d.ts +1 -1
- package/dist/interfaces/permission-module-options.interface.js +1 -2
- package/dist/interfaces/route-argument-metadata-value.interface.js +1 -2
- package/dist/permission.ability-builder.d.ts +1 -1
- package/dist/permission.ability-builder.js +3 -7
- package/dist/permission.ability-builder.js.map +1 -1
- package/dist/permission.constants.js +7 -10
- package/dist/permission.constants.js.map +1 -1
- package/dist/permission.guard.d.ts +1 -1
- package/dist/permission.guard.js +39 -39
- package/dist/permission.guard.js.map +1 -1
- package/dist/permission.module-definition.d.ts +1 -1
- package/dist/permission.module-definition.js +4 -7
- package/dist/permission.module-definition.js.map +1 -1
- package/dist/permission.module.d.ts +1 -1
- package/dist/permission.module.js +10 -13
- package/dist/permission.module.js.map +1 -1
- package/dist/types/build-ability-callback.type.d.ts +1 -1
- package/dist/types/build-ability-callback.type.js +1 -2
- package/dist/types/can-subject-factory.type.js +1 -2
- package/dist/types/can-subject.type.d.ts +1 -1
- package/dist/types/can-subject.type.js +1 -2
- package/dist/types/permission-ability.type.d.ts +1 -1
- package/dist/types/permission-ability.type.js +1 -2
- package/dist/types/route-argument-metadata.type.d.ts +1 -1
- package/dist/types/route-argument-metadata.type.js +1 -2
- package/dist/utils/can.util.d.ts +1 -1
- package/dist/utils/can.util.js +3 -6
- package/dist/utils/can.util.js.map +1 -1
- package/dist/utils/get-permission-ability.util.d.ts +1 -1
- package/dist/utils/get-permission-ability.util.js +6 -10
- package/dist/utils/get-permission-ability.util.js.map +1 -1
- package/package.json +21 -24
- package/dist/decorators/can.decorator.spec.d.ts +0 -1
- package/dist/decorators/can.decorator.spec.js +0 -50
- package/dist/decorators/can.decorator.spec.js.map +0 -1
- package/dist/index.spec.d.ts +0 -0
- package/dist/index.spec.js +0 -47
- package/dist/index.spec.js.map +0 -1
- package/dist/permission.ability-builder.spec.d.ts +0 -1
- package/dist/permission.ability-builder.spec.js +0 -16
- package/dist/permission.ability-builder.spec.js.map +0 -1
- package/dist/permission.guard.spec.d.ts +0 -1
- package/dist/permission.guard.spec.js +0 -577
- package/dist/permission.guard.spec.js.map +0 -1
- package/dist/permission.module.spec.d.ts +0 -1
- package/dist/permission.module.spec.js +0 -12
- package/dist/permission.module.spec.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/utils/can.util.spec.d.ts +0 -1
- package/dist/utils/can.util.spec.js +0 -34
- package/dist/utils/can.util.spec.js.map +0 -1
- package/dist/utils/get-permission-ability.util.spec.d.ts +0 -1
- package/dist/utils/get-permission-ability.util.spec.js +0 -27
- package/dist/utils/get-permission-ability.util.spec.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Subject } from "@casl/ability";
|
|
2
2
|
import type { CustomDecorator } from "@nestjs/common";
|
|
3
|
-
import type { PermissionAction } from "../enums/permission-action.enum";
|
|
4
|
-
import type { CanOptions } from "../interfaces/can-options.interface";
|
|
5
|
-
import { CAN_METADATA } from "../permission.constants";
|
|
6
|
-
import type { CanSubject } from "../types/can-subject.type";
|
|
3
|
+
import type { PermissionAction } from "../enums/permission-action.enum.js";
|
|
4
|
+
import type { CanOptions } from "../interfaces/can-options.interface.js";
|
|
5
|
+
import { CAN_METADATA } from "../permission.constants.js";
|
|
6
|
+
import type { CanSubject } from "../types/can-subject.type.js";
|
|
7
7
|
/**
|
|
8
8
|
* Declares that the current route requires the given action on the given subject.
|
|
9
9
|
*
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Can = Can;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const permission_constants_1 = require("../permission.constants");
|
|
1
|
+
import { SetMetadata } from "@nestjs/common";
|
|
2
|
+
import { CAN_METADATA } from "../permission.constants.js";
|
|
6
3
|
/**
|
|
7
4
|
* Creates permission metadata for the current route handler.
|
|
8
5
|
*
|
|
@@ -10,9 +7,9 @@ const permission_constants_1 = require("../permission.constants");
|
|
|
10
7
|
* @param subject - Permission subject used with the positional overload.
|
|
11
8
|
* @returns Nest custom metadata decorator.
|
|
12
9
|
*/
|
|
13
|
-
function Can(actionOrOptions, subject) {
|
|
10
|
+
export function Can(actionOrOptions, subject) {
|
|
14
11
|
if (typeof actionOrOptions === "object") {
|
|
15
|
-
return
|
|
12
|
+
return SetMetadata(CAN_METADATA, actionOrOptions);
|
|
16
13
|
}
|
|
17
14
|
if (!subject) {
|
|
18
15
|
throw new TypeError("Permission subject is required.");
|
|
@@ -21,6 +18,6 @@ function Can(actionOrOptions, subject) {
|
|
|
21
18
|
action: actionOrOptions,
|
|
22
19
|
subject,
|
|
23
20
|
};
|
|
24
|
-
return
|
|
21
|
+
return SetMetadata(CAN_METADATA, options);
|
|
25
22
|
}
|
|
26
23
|
//# sourceMappingURL=can.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"can.decorator.js","sourceRoot":"","sources":["../../src/decorators/can.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"can.decorator.js","sourceRoot":"","sources":["../../src/decorators/can.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAyB1D;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,CACjB,eAAiD,EACjD,OAAuB;IAEvB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,WAAW,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,eAAe;QACvB,OAAO;KACR,CAAC;IAEF,OAAO,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PermissionAction = void 0;
|
|
4
1
|
/** Common permission actions used by `PermissionAbility`. */
|
|
5
|
-
var PermissionAction;
|
|
2
|
+
export var PermissionAction;
|
|
6
3
|
(function (PermissionAction) {
|
|
7
4
|
/** Create a resource. */
|
|
8
5
|
PermissionAction["CREATE"] = "create";
|
|
@@ -14,5 +11,5 @@ var PermissionAction;
|
|
|
14
11
|
PermissionAction["DELETE"] = "delete";
|
|
15
12
|
/** Manage a resource, including all actions. */
|
|
16
13
|
PermissionAction["MANAGE"] = "manage";
|
|
17
|
-
})(PermissionAction || (
|
|
14
|
+
})(PermissionAction || (PermissionAction = {}));
|
|
18
15
|
//# sourceMappingURL=permission-action.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-action.enum.js","sourceRoot":"","sources":["../../src/enums/permission-action.enum.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permission-action.enum.js","sourceRoot":"","sources":["../../src/enums/permission-action.enum.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,CAAN,IAAY,gBAWX;AAXD,WAAY,gBAAgB;IAC1B,yBAAyB;IACzB,qCAAiB,CAAA;IACjB,uBAAuB;IACvB,iCAAa,CAAA;IACb,yBAAyB;IACzB,qCAAiB,CAAA;IACjB,yBAAyB;IACzB,qCAAiB,CAAA;IACjB,gDAAgD;IAChD,qCAAiB,CAAA;AACnB,CAAC,EAXW,gBAAgB,KAAhB,gBAAgB,QAW3B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export * from "./decorators/can.decorator";
|
|
2
|
-
export * from "./enums/permission-action.enum";
|
|
3
|
-
export * from "./interfaces/can-options.interface";
|
|
4
|
-
export * from "./interfaces/permission-module-options.interface";
|
|
5
|
-
export * from "./interfaces/route-argument-metadata-value.interface";
|
|
6
|
-
export * from "./permission.ability-builder";
|
|
7
|
-
export * from "./permission.constants";
|
|
8
|
-
export * from "./permission.guard";
|
|
9
|
-
export * from "./permission.module";
|
|
10
|
-
export * from "./types/build-ability-callback.type";
|
|
11
|
-
export * from "./types/can-subject.type";
|
|
12
|
-
export * from "./types/can-subject-factory.type";
|
|
13
|
-
export * from "./types/permission-ability.type";
|
|
14
|
-
export * from "./types/route-argument-metadata.type";
|
|
15
|
-
export * from "./utils/can.util";
|
|
16
|
-
export * from "./utils/get-permission-ability.util";
|
|
1
|
+
export * from "./decorators/can.decorator.js";
|
|
2
|
+
export * from "./enums/permission-action.enum.js";
|
|
3
|
+
export * from "./interfaces/can-options.interface.js";
|
|
4
|
+
export * from "./interfaces/permission-module-options.interface.js";
|
|
5
|
+
export * from "./interfaces/route-argument-metadata-value.interface.js";
|
|
6
|
+
export * from "./permission.ability-builder.js";
|
|
7
|
+
export * from "./permission.constants.js";
|
|
8
|
+
export * from "./permission.guard.js";
|
|
9
|
+
export * from "./permission.module.js";
|
|
10
|
+
export * from "./types/build-ability-callback.type.js";
|
|
11
|
+
export * from "./types/can-subject.type.js";
|
|
12
|
+
export * from "./types/can-subject-factory.type.js";
|
|
13
|
+
export * from "./types/permission-ability.type.js";
|
|
14
|
+
export * from "./types/route-argument-metadata.type.js";
|
|
15
|
+
export * from "./utils/can.util.js";
|
|
16
|
+
export * from "./utils/get-permission-ability.util.js";
|
package/dist/index.js
CHANGED
|
@@ -1,33 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
__exportStar(require("./decorators/can.decorator"), exports);
|
|
18
|
-
__exportStar(require("./enums/permission-action.enum"), exports);
|
|
19
|
-
__exportStar(require("./interfaces/can-options.interface"), exports);
|
|
20
|
-
__exportStar(require("./interfaces/permission-module-options.interface"), exports);
|
|
21
|
-
__exportStar(require("./interfaces/route-argument-metadata-value.interface"), exports);
|
|
22
|
-
__exportStar(require("./permission.ability-builder"), exports);
|
|
23
|
-
__exportStar(require("./permission.constants"), exports);
|
|
24
|
-
__exportStar(require("./permission.guard"), exports);
|
|
25
|
-
__exportStar(require("./permission.module"), exports);
|
|
26
|
-
__exportStar(require("./types/build-ability-callback.type"), exports);
|
|
27
|
-
__exportStar(require("./types/can-subject.type"), exports);
|
|
28
|
-
__exportStar(require("./types/can-subject-factory.type"), exports);
|
|
29
|
-
__exportStar(require("./types/permission-ability.type"), exports);
|
|
30
|
-
__exportStar(require("./types/route-argument-metadata.type"), exports);
|
|
31
|
-
__exportStar(require("./utils/can.util"), exports);
|
|
32
|
-
__exportStar(require("./utils/get-permission-ability.util"), exports);
|
|
1
|
+
export * from "./decorators/can.decorator.js";
|
|
2
|
+
export * from "./enums/permission-action.enum.js";
|
|
3
|
+
export * from "./interfaces/can-options.interface.js";
|
|
4
|
+
export * from "./interfaces/permission-module-options.interface.js";
|
|
5
|
+
export * from "./interfaces/route-argument-metadata-value.interface.js";
|
|
6
|
+
export * from "./permission.ability-builder.js";
|
|
7
|
+
export * from "./permission.constants.js";
|
|
8
|
+
export * from "./permission.guard.js";
|
|
9
|
+
export * from "./permission.module.js";
|
|
10
|
+
export * from "./types/build-ability-callback.type.js";
|
|
11
|
+
export * from "./types/can-subject.type.js";
|
|
12
|
+
export * from "./types/can-subject-factory.type.js";
|
|
13
|
+
export * from "./types/permission-ability.type.js";
|
|
14
|
+
export * from "./types/route-argument-metadata.type.js";
|
|
15
|
+
export * from "./utils/can.util.js";
|
|
16
|
+
export * from "./utils/get-permission-ability.util.js";
|
|
33
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qDAAqD,CAAC;AACpE,cAAc,yDAAyD,CAAC;AACxE,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Subject } from "@casl/ability";
|
|
2
|
-
import type { PermissionAction } from "../enums/permission-action.enum";
|
|
3
|
-
import type { CanSubject } from "../types/can-subject.type";
|
|
2
|
+
import type { PermissionAction } from "../enums/permission-action.enum.js";
|
|
3
|
+
import type { CanSubject } from "../types/can-subject.type.js";
|
|
4
4
|
/** Full `Can` decorator options. */
|
|
5
5
|
export interface CanOptions<T extends Subject = Subject> {
|
|
6
6
|
/** Permission action that must be allowed. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BuildAbilityCallback } from "../types/build-ability-callback.type";
|
|
1
|
+
import type { BuildAbilityCallback } from "../types/build-ability-callback.type.js";
|
|
2
2
|
/** Permission module options. */
|
|
3
3
|
export interface PermissionModuleOptions {
|
|
4
4
|
/** Builds a permission ability from the current execution context. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AbilityBuilder } from "@casl/ability";
|
|
2
|
-
import type { PermissionAbility } from "./types/permission-ability.type";
|
|
2
|
+
import type { PermissionAbility } from "./types/permission-ability.type.js";
|
|
3
3
|
/** CASL ability builder configured for `PermissionAbility`. */
|
|
4
4
|
export declare class PermissionAbilityBuilder extends AbilityBuilder<PermissionAbility> {
|
|
5
5
|
/** Creates an ability builder backed by CASL Mongo ability. */
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PermissionAbilityBuilder = void 0;
|
|
4
|
-
const ability_1 = require("@casl/ability");
|
|
1
|
+
import { AbilityBuilder, createMongoAbility } from "@casl/ability";
|
|
5
2
|
/** CASL ability builder configured for `PermissionAbility`. */
|
|
6
|
-
class PermissionAbilityBuilder extends
|
|
3
|
+
export class PermissionAbilityBuilder extends AbilityBuilder {
|
|
7
4
|
/** Creates an ability builder backed by CASL Mongo ability. */
|
|
8
5
|
constructor() {
|
|
9
|
-
super(
|
|
6
|
+
super(createMongoAbility);
|
|
10
7
|
}
|
|
11
8
|
}
|
|
12
|
-
exports.PermissionAbilityBuilder = PermissionAbilityBuilder;
|
|
13
9
|
//# sourceMappingURL=permission.ability-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.ability-builder.js","sourceRoot":"","sources":["../src/permission.ability-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permission.ability-builder.js","sourceRoot":"","sources":["../src/permission.ability-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAInE,+DAA+D;AAC/D,MAAM,OAAO,wBAAyB,SAAQ,cAAiC;IAC7E,+DAA+D;IAC/D;QACE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ROUTE_PARAM_TYPES = exports.GQL_PARAM_TYPES = exports.CUSTOM_ROUTE_ARGS_METADATA = exports.ROUTE_ARGS_METADATA = exports.PERMISSION_ABILITY_PROMISE = exports.PERMISSION_ABILITY = exports.CAN_METADATA = void 0;
|
|
4
1
|
/** Reflection metadata key used by the `Can` decorator. */
|
|
5
|
-
|
|
2
|
+
export const CAN_METADATA = Symbol("CAN_METADATA");
|
|
6
3
|
/** Request context key that stores the resolved permission ability. */
|
|
7
|
-
|
|
4
|
+
export const PERMISSION_ABILITY = Symbol("PERMISSION_ABILITY");
|
|
8
5
|
/** Request context key that stores the in-flight permission ability promise. */
|
|
9
|
-
|
|
6
|
+
export const PERMISSION_ABILITY_PROMISE = Symbol("PERMISSION_ABILITY_PROMISE");
|
|
10
7
|
/** Nest route arguments metadata key. */
|
|
11
|
-
|
|
8
|
+
export const ROUTE_ARGS_METADATA = "__routeArguments__";
|
|
12
9
|
/** Nest custom route arguments metadata key suffix. */
|
|
13
|
-
|
|
10
|
+
export const CUSTOM_ROUTE_ARGS_METADATA = "__customRouteArgs__";
|
|
14
11
|
/** GraphQL route parameter type ids used by Nest GraphQL. */
|
|
15
|
-
|
|
12
|
+
export const GQL_PARAM_TYPES = {
|
|
16
13
|
/** GraphQL root object parameter type id. */
|
|
17
14
|
ROOT: 0,
|
|
18
15
|
/** GraphQL context parameter type id. */
|
|
@@ -23,7 +20,7 @@ exports.GQL_PARAM_TYPES = {
|
|
|
23
20
|
ARGS: 3,
|
|
24
21
|
};
|
|
25
22
|
/** HTTP route parameter type ids used by Nest. */
|
|
26
|
-
|
|
23
|
+
export const ROUTE_PARAM_TYPES = {
|
|
27
24
|
/** HTTP request parameter type id. */
|
|
28
25
|
REQUEST: 0,
|
|
29
26
|
/** HTTP response parameter type id. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.constants.js","sourceRoot":"","sources":["../src/permission.constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permission.constants.js","sourceRoot":"","sources":["../src/permission.constants.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAEnD,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE/D,gFAAgF;AAChF,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AAE/E,yCAAyC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAExD,uDAAuD;AACvD,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAEhE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,6CAA6C;IAC7C,IAAI,EAAE,CAAC;IACP,yCAAyC;IACzC,OAAO,EAAE,CAAC;IACV,8CAA8C;IAC9C,IAAI,EAAE,CAAC;IACP,2CAA2C;IAC3C,IAAI,EAAE,CAAC;CACC,CAAC;AAEX,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,sCAAsC;IACtC,OAAO,EAAE,CAAC;IACV,uCAAuC;IACvC,QAAQ,EAAE,CAAC;IACX,4CAA4C;IAC5C,IAAI,EAAE,CAAC;IACP,mCAAmC;IACnC,IAAI,EAAE,CAAC;IACP,oCAAoC;IACpC,KAAK,EAAE,CAAC;IACR,2CAA2C;IAC3C,KAAK,EAAE,CAAC;IACR,sCAAsC;IACtC,OAAO,EAAE,CAAC;IACV,sCAAsC;IACtC,OAAO,EAAE,CAAC;IACV,4CAA4C;IAC5C,IAAI,EAAE,CAAC;IACP,6CAA6C;IAC7C,KAAK,EAAE,CAAC;IACR,mCAAmC;IACnC,IAAI,EAAE,EAAE;IACR,iCAAiC;IACjC,EAAE,EAAE,EAAE;IACN,uCAAuC;IACvC,QAAQ,EAAE,EAAE;CACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CanActivate, ExecutionContext } from "@nestjs/common";
|
|
2
2
|
import { ModuleRef, Reflector } from "@nestjs/core";
|
|
3
|
-
import type { PermissionModuleOptions } from "./interfaces/permission-module-options.interface";
|
|
3
|
+
import type { PermissionModuleOptions } from "./interfaces/permission-module-options.interface.js";
|
|
4
4
|
/** Guard that evaluates CASL permissions from `Can` metadata. */
|
|
5
5
|
export declare class PermissionGuard implements CanActivate {
|
|
6
6
|
/** Nest metadata reflector. */
|
package/dist/permission.guard.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -11,15 +10,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const permission_constants_1 = require("./permission.constants");
|
|
20
|
-
const permission_module_definition_1 = require("./permission.module-definition");
|
|
13
|
+
import { RequestContext } from "@nest-boot/request-context";
|
|
14
|
+
import { ForbiddenException, Inject, Injectable } from "@nestjs/common";
|
|
15
|
+
import { ContextIdFactory, ModuleRef, Reflector } from "@nestjs/core";
|
|
16
|
+
import { CAN_METADATA, CUSTOM_ROUTE_ARGS_METADATA, GQL_PARAM_TYPES, PERMISSION_ABILITY, PERMISSION_ABILITY_PROMISE, ROUTE_ARGS_METADATA, ROUTE_PARAM_TYPES, } from "./permission.constants.js";
|
|
17
|
+
import { MODULE_OPTIONS_TOKEN } from "./permission.module-definition.js";
|
|
21
18
|
/** Guard that evaluates CASL permissions from `Can` metadata. */
|
|
22
19
|
let PermissionGuard = class PermissionGuard {
|
|
20
|
+
reflector;
|
|
21
|
+
options;
|
|
22
|
+
moduleRef;
|
|
23
23
|
/**
|
|
24
24
|
* Creates the permission guard.
|
|
25
25
|
*
|
|
@@ -42,13 +42,13 @@ let PermissionGuard = class PermissionGuard {
|
|
|
42
42
|
* @returns `true` when access is allowed.
|
|
43
43
|
*/
|
|
44
44
|
async canActivate(context) {
|
|
45
|
-
const canOptions = this.reflector.getAllAndOverride(
|
|
45
|
+
const canOptions = this.reflector.getAllAndOverride(CAN_METADATA, [context.getHandler(), context.getClass()]);
|
|
46
46
|
if (!canOptions) {
|
|
47
47
|
return true;
|
|
48
48
|
}
|
|
49
49
|
const ability = await this.getOrBuildAbility(context);
|
|
50
50
|
if (!ability) {
|
|
51
|
-
throw new
|
|
51
|
+
throw new ForbiddenException("Permission ability is not available");
|
|
52
52
|
}
|
|
53
53
|
return ability.can(canOptions.action, await this.resolveSubject(canOptions, context));
|
|
54
54
|
}
|
|
@@ -64,19 +64,19 @@ let PermissionGuard = class PermissionGuard {
|
|
|
64
64
|
return this.buildAndCacheAbility(context);
|
|
65
65
|
}
|
|
66
66
|
getCachedAbility() {
|
|
67
|
-
return (
|
|
67
|
+
return (RequestContext.get(PERMISSION_ABILITY) ?? null);
|
|
68
68
|
}
|
|
69
69
|
getCachedAbilityPromise() {
|
|
70
|
-
return (
|
|
70
|
+
return (RequestContext.get(PERMISSION_ABILITY_PROMISE) ?? null);
|
|
71
71
|
}
|
|
72
72
|
buildAndCacheAbility(context) {
|
|
73
73
|
const abilityPromise = Promise.resolve()
|
|
74
74
|
.then(() => this.options.buildAbility(context))
|
|
75
75
|
.then((ability) => {
|
|
76
|
-
|
|
76
|
+
RequestContext.set(PERMISSION_ABILITY, ability);
|
|
77
77
|
return ability;
|
|
78
78
|
});
|
|
79
|
-
|
|
79
|
+
RequestContext.set(PERMISSION_ABILITY_PROMISE, abilityPromise);
|
|
80
80
|
return abilityPromise;
|
|
81
81
|
}
|
|
82
82
|
async resolveSubject(canOptions, context) {
|
|
@@ -104,7 +104,7 @@ let PermissionGuard = class PermissionGuard {
|
|
|
104
104
|
}
|
|
105
105
|
getContextId(context) {
|
|
106
106
|
const request = this.getRequest(context);
|
|
107
|
-
return request ?
|
|
107
|
+
return request ? ContextIdFactory.getByRequest(request) : undefined;
|
|
108
108
|
}
|
|
109
109
|
getRequest(context) {
|
|
110
110
|
switch (context.getType()) {
|
|
@@ -128,7 +128,7 @@ let PermissionGuard = class PermissionGuard {
|
|
|
128
128
|
if (!methodName) {
|
|
129
129
|
return null;
|
|
130
130
|
}
|
|
131
|
-
return (Reflect.getMetadata(
|
|
131
|
+
return (Reflect.getMetadata(ROUTE_ARGS_METADATA, context.getClass(), methodName) ?? null);
|
|
132
132
|
}
|
|
133
133
|
getHandlerMethodName(context) {
|
|
134
134
|
const handler = context.getHandler();
|
|
@@ -146,7 +146,7 @@ let PermissionGuard = class PermissionGuard {
|
|
|
146
146
|
return args;
|
|
147
147
|
}
|
|
148
148
|
extractRouteArgument(context, key, metadata) {
|
|
149
|
-
if (key.includes(
|
|
149
|
+
if (key.includes(CUSTOM_ROUTE_ARGS_METADATA) && metadata.factory) {
|
|
150
150
|
return metadata.factory(metadata.data, context);
|
|
151
151
|
}
|
|
152
152
|
const type = Number(key.split(":")[0]);
|
|
@@ -158,13 +158,13 @@ let PermissionGuard = class PermissionGuard {
|
|
|
158
158
|
resolveGraphqlRouteArgument(context, type, data) {
|
|
159
159
|
const args = context.getArgs();
|
|
160
160
|
switch (type) {
|
|
161
|
-
case
|
|
161
|
+
case GQL_PARAM_TYPES.ROOT:
|
|
162
162
|
return args[0];
|
|
163
|
-
case
|
|
163
|
+
case GQL_PARAM_TYPES.ARGS:
|
|
164
164
|
return this.getObjectValue(args[1], data);
|
|
165
|
-
case
|
|
165
|
+
case GQL_PARAM_TYPES.CONTEXT:
|
|
166
166
|
return this.getObjectValue(args[2], data);
|
|
167
|
-
case
|
|
167
|
+
case GQL_PARAM_TYPES.INFO:
|
|
168
168
|
return args[3];
|
|
169
169
|
default:
|
|
170
170
|
return undefined;
|
|
@@ -176,31 +176,31 @@ let PermissionGuard = class PermissionGuard {
|
|
|
176
176
|
const res = httpContext.getResponse();
|
|
177
177
|
const next = httpContext.getNext();
|
|
178
178
|
switch (type) {
|
|
179
|
-
case
|
|
179
|
+
case ROUTE_PARAM_TYPES.REQUEST:
|
|
180
180
|
return req;
|
|
181
|
-
case
|
|
181
|
+
case ROUTE_PARAM_TYPES.RESPONSE:
|
|
182
182
|
return res;
|
|
183
|
-
case
|
|
183
|
+
case ROUTE_PARAM_TYPES.NEXT:
|
|
184
184
|
return next;
|
|
185
|
-
case
|
|
185
|
+
case ROUTE_PARAM_TYPES.BODY:
|
|
186
186
|
return this.getObjectValue(this.getRecord(req).body, data);
|
|
187
|
-
case
|
|
187
|
+
case ROUTE_PARAM_TYPES.RAW_BODY:
|
|
188
188
|
return this.getRecord(req).rawBody;
|
|
189
|
-
case
|
|
189
|
+
case ROUTE_PARAM_TYPES.PARAM:
|
|
190
190
|
return this.getObjectValue(this.getRecord(req).params, data);
|
|
191
|
-
case
|
|
191
|
+
case ROUTE_PARAM_TYPES.HOST:
|
|
192
192
|
return this.getObjectValue(this.getRecord(req).hosts, data);
|
|
193
|
-
case
|
|
193
|
+
case ROUTE_PARAM_TYPES.QUERY:
|
|
194
194
|
return this.getObjectValue(this.getRecord(req).query, data);
|
|
195
|
-
case
|
|
195
|
+
case ROUTE_PARAM_TYPES.HEADERS:
|
|
196
196
|
return this.getObjectValue(this.getRecord(req).headers, data, true);
|
|
197
|
-
case
|
|
197
|
+
case ROUTE_PARAM_TYPES.SESSION:
|
|
198
198
|
return this.getRecord(req).session;
|
|
199
|
-
case
|
|
199
|
+
case ROUTE_PARAM_TYPES.FILE:
|
|
200
200
|
return this.getRecord(req)[this.getStringData(data) ?? "file"];
|
|
201
|
-
case
|
|
201
|
+
case ROUTE_PARAM_TYPES.FILES:
|
|
202
202
|
return this.getRecord(req).files;
|
|
203
|
-
case
|
|
203
|
+
case ROUTE_PARAM_TYPES.IP:
|
|
204
204
|
return this.getRecord(req).ip;
|
|
205
205
|
default:
|
|
206
206
|
return undefined;
|
|
@@ -223,10 +223,10 @@ let PermissionGuard = class PermissionGuard {
|
|
|
223
223
|
: {};
|
|
224
224
|
}
|
|
225
225
|
};
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
(
|
|
229
|
-
|
|
230
|
-
__metadata("design:paramtypes", [core_1.Reflector, Object, core_1.ModuleRef])
|
|
226
|
+
PermissionGuard = __decorate([
|
|
227
|
+
Injectable(),
|
|
228
|
+
__param(1, Inject(MODULE_OPTIONS_TOKEN)),
|
|
229
|
+
__metadata("design:paramtypes", [Reflector, Object, ModuleRef])
|
|
231
230
|
], PermissionGuard);
|
|
231
|
+
export { PermissionGuard };
|
|
232
232
|
//# sourceMappingURL=permission.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../src/permission.guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permission.guard.js","sourceRoot":"","sources":["../src/permission.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PermissionModuleOptions } from "./interfaces/permission-module-options.interface";
|
|
1
|
+
import type { PermissionModuleOptions } from "./interfaces/permission-module-options.interface.js";
|
|
2
2
|
/** Configurable module base class for `PermissionModule`. */
|
|
3
3
|
export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<PermissionModuleOptions, "forRoot", "create", {}>;
|
|
4
4
|
/** Injection token for permission module options. */
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.MODULE_OPTIONS_TOKEN = exports.ConfigurableModuleClass = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const moduleDefinition = new common_1.ConfigurableModuleBuilder()
|
|
1
|
+
import { ConfigurableModuleBuilder } from "@nestjs/common";
|
|
2
|
+
const moduleDefinition = new ConfigurableModuleBuilder()
|
|
6
3
|
.setClassMethodName("forRoot")
|
|
7
4
|
.build();
|
|
8
5
|
/** Configurable module base class for `PermissionModule`. */
|
|
9
|
-
|
|
6
|
+
export const ConfigurableModuleClass = moduleDefinition.ConfigurableModuleClass;
|
|
10
7
|
/** Injection token for permission module options. */
|
|
11
|
-
|
|
8
|
+
export const MODULE_OPTIONS_TOKEN = moduleDefinition.MODULE_OPTIONS_TOKEN;
|
|
12
9
|
//# sourceMappingURL=permission.module-definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.module-definition.js","sourceRoot":"","sources":["../src/permission.module-definition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permission.module-definition.js","sourceRoot":"","sources":["../src/permission.module-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAI3D,MAAM,gBAAgB,GACpB,IAAI,yBAAyB,EAA2B;KACrD,kBAAkB,CAAC,SAAS,CAAC;KAC7B,KAAK,EAAE,CAAC;AAEb,6DAA6D;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,uBAAuB,CAAC;AAEhF,qDAAqD;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfigurableModuleClass } from "./permission.module-definition";
|
|
1
|
+
import { ConfigurableModuleClass } from "./permission.module-definition.js";
|
|
2
2
|
/** Global module that provides the permission guard. */
|
|
3
3
|
export declare class PermissionModule extends ConfigurableModuleClass {
|
|
4
4
|
}
|
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const permission_guard_1 = require("./permission.guard");
|
|
12
|
-
const permission_module_definition_1 = require("./permission.module-definition");
|
|
7
|
+
import { Global, Module } from "@nestjs/common";
|
|
8
|
+
import { PermissionGuard } from "./permission.guard.js";
|
|
9
|
+
import { ConfigurableModuleClass } from "./permission.module-definition.js";
|
|
13
10
|
/** Global module that provides the permission guard. */
|
|
14
|
-
let PermissionModule = class PermissionModule extends
|
|
11
|
+
let PermissionModule = class PermissionModule extends ConfigurableModuleClass {
|
|
15
12
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
exports: [permission_guard_1.PermissionGuard],
|
|
13
|
+
PermissionModule = __decorate([
|
|
14
|
+
Global(),
|
|
15
|
+
Module({
|
|
16
|
+
providers: [PermissionGuard],
|
|
17
|
+
exports: [PermissionGuard],
|
|
22
18
|
})
|
|
23
19
|
], PermissionModule);
|
|
20
|
+
export { PermissionModule };
|
|
24
21
|
//# sourceMappingURL=permission.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.module.js","sourceRoot":"","sources":["../src/permission.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permission.module.js","sourceRoot":"","sources":["../src/permission.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5E,wDAAwD;AAMjD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,uBAAuB;CAAG,CAAA;AAAnD,gBAAgB;IAL5B,MAAM,EAAE;IACR,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,eAAe,CAAC;QAC5B,OAAO,EAAE,CAAC,eAAe,CAAC;KAC3B,CAAC;GACW,gBAAgB,CAAmC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ExecutionContext } from "@nestjs/common";
|
|
2
|
-
import type { PermissionAbility } from "./permission-ability.type";
|
|
2
|
+
import type { PermissionAbility } from "./permission-ability.type.js";
|
|
3
3
|
/** Callback used to build the permission ability for the current execution context. */
|
|
4
4
|
export type BuildAbilityCallback = (ctx: ExecutionContext) => PermissionAbility | null | Promise<PermissionAbility | null>;
|