UNPKG

loopback4-authorization

Version:

ARC authorization extension for loopback-next applications.

39 lines 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAuthorizeMetadata = exports.AuthorizationMetadataProvider = void 0; const tslib_1 = require("tslib"); const context_1 = require("@loopback/context"); const core_1 = require("@loopback/core"); const keys_1 = require("../keys"); let AuthorizationMetadataProvider = class AuthorizationMetadataProvider { constructor(controllerClass, methodName, permissionObject) { this.controllerClass = controllerClass; this.methodName = methodName; this.permissionObject = permissionObject; } value() { if (!this.controllerClass || !this.methodName) return; return getAuthorizeMetadata(this.controllerClass, this.methodName, this.permissionObject); } }; exports.AuthorizationMetadataProvider = AuthorizationMetadataProvider; exports.AuthorizationMetadataProvider = AuthorizationMetadataProvider = tslib_1.__decorate([ tslib_1.__param(0, (0, context_1.inject)(core_1.CoreBindings.CONTROLLER_CLASS, { optional: true })), tslib_1.__param(1, (0, context_1.inject)(core_1.CoreBindings.CONTROLLER_METHOD_NAME, { optional: true })), tslib_1.__param(2, (0, context_1.inject)(keys_1.AuthorizationBindings.PERMISSION)), tslib_1.__metadata("design:paramtypes", [Object, String, Object]) ], AuthorizationMetadataProvider); function getAuthorizeMetadata(controllerClass, methodName, userPermission) { var _a, _b; const authorizationMetadata = (_a = context_1.MetadataInspector.getMethodMetadata(keys_1.AUTHORIZATION_METADATA_ACCESSOR, controllerClass.prototype, methodName)) !== null && _a !== void 0 ? _a : { permissions: [] }; if (userPermission) { const methodPermissions = (_b = userPermission === null || userPermission === void 0 ? void 0 : userPermission[controllerClass.name]) === null || _b === void 0 ? void 0 : _b[methodName]; if (methodPermissions) { authorizationMetadata.permissions = methodPermissions; } } return authorizationMetadata; } exports.getAuthorizeMetadata = getAuthorizeMetadata; //# sourceMappingURL=authorization-metadata.provider.js.map