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 AuthGuard implements CanActivate {
31 private authService: AuthService,
32 private router: Router
36 next: ActivatedRouteSnapshot,
37 state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
39 return this.authService.checkLogin().pipe(map((e:boolean)=>{
41 this.authService.setUser();
42 if(this.authService.getUser().roles.includes("ROLE_ADMIN")){
43 this.authService.isAdmin = true;
45 this.authService.isAdmin = false;
47 this.authService.authPass=true;
51 this.authService.reLoginMsg = true;
52 // window.alert("Your login has expired. Please log in again.");
53 this.authService.authPass=false;
54 this.router.navigate(['/login']);