Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
|
- import {Injectable} from '@angular/core';
- import { Router } from '@angular/router';
- import {AppService} from '../services/app.service';
- import {Subscription} from 'rxjs/index';
- import {ILoginState} from '../model/virtual/login-state';
-
- @Injectable({
- providedIn: 'root'
- })
- export class RouteInterceptor {
- private loginSub: Subscription;
- private loginState: ILoginState;
-
- /**
- * Constructor of router service
- */
- constructor(private router: Router, private appService: AppService) {
- // Observe login state
- this.loginSub = this.appService.getLoginState$().subscribe(
- data => this.loginState = data);
- }
-
- /**
- * Checks if user is logged in and redirects to login page if not
- * @returns {boolean}
- */
- canActivate(): boolean {
- console.log(this.loginState);
- if (this.loginState === null || !this.loginState.isLoggedIn) {
- this.router.navigate(['./login']);
- console.log('no routing');
- return false;
- }
- console.log('routing works');
- return true;
- }
- }
|