@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
34 lines (33 loc) • 1.84 kB
TypeScript
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';
import { UserService } from '../../user/services/user.service';
import { RedirectService } from '../../routing/redirect-service/redirect.service';
import { ConfigurationService } from '../../configuration/configuration.service';
import { Access, RoleAccess, View } from '../../../commons/schema';
import { LoggerService } from '../../logger/services/logger.service';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
interface RoleConstraint {
processIdentifier: string;
roleIdentifier?: string;
roleName?: string;
}
export declare class RoleGuardService implements CanActivate {
protected _redirectService: RedirectService;
protected _userService: UserService;
protected _configService: ConfigurationService;
protected _log: LoggerService;
private readonly _loginUrl;
constructor(_redirectService: RedirectService, _userService: UserService, _configService: ConfigurationService, _log: LoggerService);
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree;
canAccessView(view: View, url: string): boolean;
protected parseRoleConstraints(roleConstrains: Access['role'] | Access['bannedRole'], viewUrl: string): Array<RoleConstraint>;
/**
* @deprecated in 5.0.0
*/
protected parseStringRoleConstraints(roleConstrains: string | Array<string>): Array<RoleConstraint>;
protected parseObjectRoleConstrains(roleConstrains: RoleAccess | Array<RoleAccess>): Array<RoleConstraint>;
private decideAccessByRole;
static ɵfac: i0.ɵɵFactoryDeclaration<RoleGuardService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<RoleGuardService>;
}
export {};