ngx-keycloak-authz-lib
Version:
Bibliothèque d'authorisation Keycloak pour Angular
51 lines • 6.89 kB
JavaScript
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=