@superawesome/permissions-nestjs
Version:
NestJS Guard & Decorators for @superawesome/permissions, promoting orthogonal fine-grained API access control to resources.
51 lines • 2.21 kB
JavaScript
;
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