2 * # ============LICENSE_START=======================================================
3 * # Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
4 * # ================================================================================
5 * # Licensed under the Apache License, Version 2.0 (the "License");
6 * # you may not use this file except in compliance with the License.
7 * # You may obtain a copy of the License at
9 * # http://www.apache.org/licenses/LICENSE-2.0
11 * # Unless required by applicable law or agreed to in writing, software
12 * # distributed under the License is distributed on an "AS IS" BASIS,
13 * # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * # See the License for the specific language governing permissions and
15 * # limitations under the License.
16 * # ============LICENSE_END=========================================================
19 import { Injectable } from '@angular/core';
20 import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';
21 import { Observable, of } from 'rxjs';
22 import { AuthService } from '../services/auth.service';
23 import { catchError, map } from 'rxjs/operators';
28 export class LoginGuard implements CanActivate {
30 private authService: AuthService,
31 private router: Router
35 next: ActivatedRouteSnapshot,
36 state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
38 return this.authService.checkLogin().pipe(map((e:boolean)=>{
40 console.log("Hi this is loginguard");
41 this.authService.authPass=true;
42 this.router.navigate(['/home']);
46 console.log("Login guard out");
47 this.authService.authPass=false;
48 this.router.navigate(['/login']);