loopback4-authorization
Version:
ARC authorization extension for loopback-next applications.
43 lines • 2.7 kB
JavaScript
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
;