| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import { Injectable } from '@angular/core';
- import {
- ActivatedRouteSnapshot,
- CanActivate,
- CanActivateChild,
- CanDeactivate,
- CanLoad,
- Route,
- Router,
- RouterStateSnapshot,
- UrlSegment,
- UrlTree
- } from '@angular/router';
- import { Observable } from 'rxjs';
- import { UserService } from '../services/auth/user.service';
- import {RoutePath} from "../enum/route-path";
- @Injectable({
- providedIn: 'root'
- })
- export class AuthenticationGuard implements CanActivate, CanActivateChild, CanDeactivate<unknown>, CanLoad {
- constructor(
- private userService: UserService,
- private router: Router,
- )
- {
- }
- canActivate(
- route: ActivatedRouteSnapshot,
- state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
- if (this.userService.getAuthToken() !== null && this.userService.getAuthToken() !== undefined){
- return true;
- }
- return this.router.createUrlTree([RoutePath.LOGIN]);
- }
- canActivateChild(
- childRoute: ActivatedRouteSnapshot,
- state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
- return true;
- }
- canDeactivate(
- component: unknown,
- currentRoute: ActivatedRouteSnapshot,
- currentState: RouterStateSnapshot,
- nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
- return true;
- }
- canLoad(
- route: Route,
- segments: UrlSegment[]): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
- return true;
- }
- }
|