UNPKG

loopback4-authorization

Version:

ARC authorization extension for loopback-next applications.

43 lines 2.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthorizationComponent = void 0; const tslib_1 = require("tslib"); const core_1 = require("@loopback/core"); const keys_1 = require("./keys"); const authorization_action_provider_1 = require("./providers/authorization-action.provider"); const authorization_metadata_provider_1 = require("./providers/authorization-metadata.provider"); const casbin_authorization_action_provider_1 = require("./providers/casbin-authorization-action.provider"); const user_permissions_provider_1 = require("./providers/user-permissions.provider"); let AuthorizationComponent = class AuthorizationComponent { constructor(config, permission) { var _a, _b, _c, _d, _e, _f; this.config = config; this.permission = permission; this.bindings = []; this.providers = { [keys_1.AuthorizationBindings.AUTHORIZE_ACTION.key]: authorization_action_provider_1.AuthorizeActionProvider, [keys_1.AuthorizationBindings.CASBIN_AUTHORIZE_ACTION.key]: casbin_authorization_action_provider_1.CasbinAuthorizationProvider, [keys_1.AuthorizationBindings.METADATA.key]: authorization_metadata_provider_1.AuthorizationMetadataProvider, [keys_1.AuthorizationBindings.USER_PERMISSIONS.key]: user_permissions_provider_1.UserPermissionsProvider, }; if (!this.permission) { (_a = this.bindings) === null || _a === void 0 ? void 0 : _a.push(core_1.Binding.bind(keys_1.AuthorizationBindings.PERMISSION).to(null)); } if (((_b = this.config) === null || _b === void 0 ? void 0 : _b.allowAlwaysPaths) && ((_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.allowAlwaysPaths) === null || _d === void 0 ? void 0 : _d.length) > 0) { (_e = this.bindings) === null || _e === void 0 ? void 0 : _e.push(core_1.Binding.bind(keys_1.AuthorizationBindings.PATHS_TO_ALLOW_ALWAYS).to(this.config.allowAlwaysPaths)); } else { (_f = this.bindings) === null || _f === void 0 ? void 0 : _f.push(core_1.Binding.bind(keys_1.AuthorizationBindings.PATHS_TO_ALLOW_ALWAYS).to([ '/explorer', ])); } } }; exports.AuthorizationComponent = AuthorizationComponent; exports.AuthorizationComponent = AuthorizationComponent = tslib_1.__decorate([ tslib_1.__param(0, (0, core_1.inject)(keys_1.AuthorizationBindings.CONFIG)), tslib_1.__param(1, (0, core_1.inject)(keys_1.AuthorizationBindings.PERMISSION, { optional: true })), tslib_1.__metadata("design:paramtypes", [Object, Object]) ], AuthorizationComponent); //# sourceMappingURL=component.js.map