@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
40 lines • 5.87 kB
JavaScript
import { Injectable } from '@angular/core';
import { AuthenticationModule } from '../../authentication/authentication.module';
import * as i0 from "@angular/core";
import * as i1 from "../../routing/redirect-service/redirect.service";
import * as i2 from "../../user/services/user.service";
import * as i3 from "../../configuration/configuration.service";
import * as i4 from "@angular/router";
export class AuthorityGuardService {
_redirectService;
_userService;
_configService;
_router;
_loginUrl;
constructor(_redirectService, _userService, _configService, _router) {
this._redirectService = _redirectService;
this._userService = _userService;
this._configService = _configService;
this._router = _router;
this._loginUrl = this._redirectService.resolveLoginPath();
}
canActivate(route, state) {
this._redirectService.intendedRoute = route;
const view = this._configService.getViewByUrl(state.url.toString());
return this.canAccessView(view);
}
canAccessView(view) {
if (typeof view.access !== 'string' && view.access.hasOwnProperty('authority')) {
return this._userService.hasAuthority(view.access.authority);
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthorityGuardService, deps: [{ token: i1.RedirectService }, { token: i2.UserService }, { token: i3.ConfigurationService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthorityGuardService, providedIn: AuthenticationModule });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuthorityGuardService, decorators: [{
type: Injectable,
args: [{
providedIn: AuthenticationModule
}]
}], ctorParameters: () => [{ type: i1.RedirectService }, { type: i2.UserService }, { type: i3.ConfigurationService }, { type: i4.Router }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXR5LWd1YXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2F1dGhvcml6YXRpb24vYXV0aG9yaXR5L2F1dGhvcml0eS1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQVNoRixNQUFNLE9BQU8scUJBQXFCO0lBSVI7SUFDQTtJQUNBO0lBQ0E7SUFMTCxTQUFTLENBQVM7SUFFbkMsWUFBc0IsZ0JBQWlDLEVBQ2pDLFlBQXlCLEVBQ3pCLGNBQW9DLEVBQ3BDLE9BQWU7UUFIZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUNwQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE2QixFQUM3QixLQUEwQjtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBVTtRQUMzQixJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDNUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hFO0lBQ0wsQ0FBQzt3R0F0QlEscUJBQXFCOzRHQUFyQixxQkFBcUIsY0FGbEIsb0JBQW9COzs0RkFFdkIscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxvQkFBb0I7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VXNlclNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7QXV0aGVudGljYXRpb25Nb2R1bGV9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL2F1dGhlbnRpY2F0aW9uLm1vZHVsZSc7XG5pbXBvcnQge1JlZGlyZWN0U2VydmljZX0gZnJvbSAnLi4vLi4vcm91dGluZy9yZWRpcmVjdC1zZXJ2aWNlL3JlZGlyZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Vmlld30gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9zY2hlbWEnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogQXV0aGVudGljYXRpb25Nb2R1bGVcbn0pXG5leHBvcnQgY2xhc3MgQXV0aG9yaXR5R3VhcmRTZXJ2aWNlIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbG9naW5Vcmw6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcmVkaXJlY3RTZXJ2aWNlOiBSZWRpcmVjdFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3JvdXRlcjogUm91dGVyKSB7XG4gICAgICAgIHRoaXMuX2xvZ2luVXJsID0gdGhpcy5fcmVkaXJlY3RTZXJ2aWNlLnJlc29sdmVMb2dpblBhdGgoKTtcbiAgICB9XG5cbiAgICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICAgICAgICAgICAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIHRoaXMuX3JlZGlyZWN0U2VydmljZS5pbnRlbmRlZFJvdXRlID0gcm91dGU7XG4gICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLl9jb25maWdTZXJ2aWNlLmdldFZpZXdCeVVybChzdGF0ZS51cmwudG9TdHJpbmcoKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkFjY2Vzc1ZpZXcodmlldyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbkFjY2Vzc1ZpZXcodmlldzogVmlldyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodHlwZW9mIHZpZXcuYWNjZXNzICE9PSAnc3RyaW5nJyAmJiB2aWV3LmFjY2Vzcy5oYXNPd25Qcm9wZXJ0eSgnYXV0aG9yaXR5JykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VyU2VydmljZS5oYXNBdXRob3JpdHkodmlldy5hY2Nlc3MuYXV0aG9yaXR5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==