UNPKG

ngx-keycloak-authz-lib

Version:
51 lines 6.89 kB
import { Directive, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "keycloak-angular"; import * as i2 from "../services/keycloak-authorization.service"; export class EnableForKeycloakAuthorizationDirective { constructor(element, keycloakAngular, authService) { this.element = element; this.keycloakAngular = keycloakAngular; this.authService = authService; } ngOnInit() { this.noAuthPresentAction(); let authCheck = {}; let requiredScope = null; if (this.requiredAuthorization.includes("#")) { let authArr = this.requiredAuthorization.split("#"); authCheck = { rsname: authArr[0], scope: authArr[1] }; } else { authCheck = { rsname: this.requiredAuthorization }; } this.keycloakAngular.isLoggedIn().then(res => { if (this.authService.checkAuthorization(authCheck)) { this.authPresentAction(); } }); } authPresentAction() { this.element.nativeElement.disabled = false; } noAuthPresentAction() { this.element.nativeElement.disabled = true; } } EnableForKeycloakAuthorizationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EnableForKeycloakAuthorizationDirective, deps: [{ token: i0.ElementRef }, { token: i1.KeycloakService }, { token: i2.KeycloakAuthorizationService }], target: i0.ɵɵFactoryTarget.Directive }); EnableForKeycloakAuthorizationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: EnableForKeycloakAuthorizationDirective, selector: "[enableForKeycloakAuthorization]", inputs: { requiredAuthorization: ["enableForKeycloakAuthorization", "requiredAuthorization"] }, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EnableForKeycloakAuthorizationDirective, decorators: [{ type: Directive, args: [{ selector: '[enableForKeycloakAuthorization]' }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.KeycloakService }, { type: i2.KeycloakAuthorizationService }]; }, propDecorators: { requiredAuthorization: [{ type: Input, args: ['enableForKeycloakAuthorization'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5hYmxlLWZvci1rZXljbG9hay1hdXRob3JpemF0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1rZXljbG9hay1hdXRoei1saWIvc3JjL2xpYi9jb3JlL2RpcmVjdGl2ZXMvZW5hYmxlLWZvci1rZXljbG9hay1hdXRob3JpemF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFDLEtBQUssRUFFVixNQUFNLGVBQWUsQ0FBQzs7OztBQVNwQyxNQUFNLE9BQU8sdUNBQXVDO0lBS2hELFlBQ1ksT0FBbUIsRUFDbkIsZUFBZ0MsRUFDaEMsV0FBd0M7UUFGeEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQTZCO0lBQ2hELENBQUM7SUFHTCxRQUFRO1FBRUosSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxTQUFTLEdBQXFDLEVBQUUsQ0FBQztRQUNyRCxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ3pDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsU0FBUyxHQUFHO2dCQUNQLE1BQU0sRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixLQUFLLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNwQixDQUFDO1NBQ0w7YUFBTTtZQUNILFNBQVMsR0FBRztnQkFDUCxNQUFNLEVBQUMsSUFBSSxDQUFDLHFCQUFxQjthQUNwQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QyxJQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQUM7Z0JBQzlDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBRTVCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFHTixDQUFDO0lBRU8saUJBQWlCO1FBRXJCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFaEQsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQy9DLENBQUM7O3FJQWhETyx1Q0FBdUM7eUhBQXZDLHVDQUF1Qzs0RkFBdkMsdUNBQXVDO2tCQUhuRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQ0FBa0M7aUJBQzdDOzBLQUlHLHFCQUFxQjtzQkFEcEIsS0FBSzt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsSW5wdXQsT25Jbml0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XHJcbmltcG9ydCB7S2V5Y2xvYWtBdXRob3JpemF0aW9uU2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMva2V5Y2xvYWstYXV0aG9yaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtLZXljbG9ha1Jlc291cmNlUGVybWlzc2lvbnNDaGVja30gZnJvbSAnLi4vaW50ZXJmYWNlcy9rZXljbG9hay1wZXJtaXNzaW9ucyc7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZW5hYmxlRm9yS2V5Y2xvYWtBdXRob3JpemF0aW9uXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVuYWJsZUZvcktleWNsb2FrQXV0aG9yaXphdGlvbkRpcmVjdGl2ZSB7XHJcbiAgICBcclxuICAgIEBJbnB1dCgnZW5hYmxlRm9yS2V5Y2xvYWtBdXRob3JpemF0aW9uJylcclxuICAgIHJlcXVpcmVkQXV0aG9yaXphdGlvbiE6IHN0cmluZztcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBcclxuICAgICAgICBwcml2YXRlIGtleWNsb2FrQW5ndWxhcjogS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6S2V5Y2xvYWtBdXRob3JpemF0aW9uU2VydmljZVxyXG4gICAgKSB7IH1cclxuICAgIFxyXG4gICAgXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm5vQXV0aFByZXNlbnRBY3Rpb24oKTtcclxuXHJcbiAgICAgICAgbGV0IGF1dGhDaGVjayA9IDxLZXljbG9ha1Jlc291cmNlUGVybWlzc2lvbnNDaGVjaz57fTtcclxuICAgICAgICBsZXQgcmVxdWlyZWRTY29wZSA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWRBdXRob3JpemF0aW9uLmluY2x1ZGVzKFwiI1wiKSl7XHJcbiAgICAgICAgICAgIGxldCBhdXRoQXJyID0gdGhpcy5yZXF1aXJlZEF1dGhvcml6YXRpb24uc3BsaXQoXCIjXCIpO1xyXG4gICAgICAgICAgICBhdXRoQ2hlY2sgPSB7XHJcbiAgICAgICAgICAgICAgICAgcnNuYW1lOmF1dGhBcnJbMF0sXHJcbiAgICAgICAgICAgICAgICAgc2NvcGU6YXV0aEFyclsxXVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGF1dGhDaGVjayA9IHtcclxuICAgICAgICAgICAgICAgICByc25hbWU6dGhpcy5yZXF1aXJlZEF1dGhvcml6YXRpb25cclxuICAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmtleWNsb2FrQW5ndWxhci5pc0xvZ2dlZEluKCkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLmF1dGhTZXJ2aWNlLmNoZWNrQXV0aG9yaXphdGlvbihhdXRoQ2hlY2spKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0aFByZXNlbnRBY3Rpb24oKTsgICAgXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuXHJcbiAgICAgfVxyXG4gICAgIFxyXG4gICAgIHByaXZhdGUgYXV0aFByZXNlbnRBY3Rpb24oKXtcclxuXHJcbiAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgIFxyXG4gICAgIH1cclxuICAgICBcclxuICAgICBwcml2YXRlIG5vQXV0aFByZXNlbnRBY3Rpb24oKXtcclxuICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgIH1cclxuXHJcblxyXG5cclxufVxyXG4iXX0=