UNPKG

@superawesome/permissions-nestjs

Version:

NestJS Guard & Decorators for @superawesome/permissions, promoting orthogonal fine-grained API access control to resources.

51 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PermissionsModule = void 0; const tslib_1 = require("tslib"); const _ = require("lodash"); const permissions_1 = require("@superawesome/permissions"); const common_1 = require("@nestjs/common"); const types_1 = require("./types"); const permissions_service_1 = require("./permissions.service"); const utils_1 = require("./utils"); let PermissionsModule = /** @class */ (() => { var PermissionsModule_1; let PermissionsModule = PermissionsModule_1 = class PermissionsModule { static forRoot({ permissionDefinitions, permissionDefinitionDefaults, limitOwnReduce, extractUserFromRequest, projectResourceId, } = {}) { const permissions = new permissions_1.Permissions({ permissionDefinitions, permissionDefinitionDefaults, limitOwnReduce, }); const permissionsProvider = { provide: types_1.PERMISSIONS_TOKEN, useValue: permissions, }; const extractUserFromRequestProvider = { provide: types_1.PERMISSIONS_EXTRACT_USER_FROM_REQUEST_TOKEN, useValue: extractUserFromRequest || utils_1.defaultExtractUserFromRequest, }; const mapResourceIdProvider = { provide: types_1.PERMISSIONS_MAP_RESOURCE_ID_TOKEN, useValue: projectResourceId || _.identity, }; return { module: PermissionsModule_1, providers: [ extractUserFromRequestProvider, mapResourceIdProvider, permissionsProvider, permissions_service_1.PermissionsService, ], exports: [extractUserFromRequestProvider, mapResourceIdProvider, permissionsProvider], }; } }; PermissionsModule = PermissionsModule_1 = tslib_1.__decorate([ common_1.Global(), common_1.Module({}) ], PermissionsModule); return PermissionsModule; })(); exports.PermissionsModule = PermissionsModule; //# sourceMappingURL=permissions.module.js.map