1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 import { Injectable } from '@angular/core';
\r
18 import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
\r
19 import { HttpClient, HttpHandler, HttpHeaders } from '@angular/common/http';
\r
20 import { AppGlobals } from 'app/app.global';
\r
21 import { UserService } from '../services/user.service';
\r
22 import { CookieService } from 'ngx-cookie-service';
\r
25 export class AdminGuard implements CanActivate {
\r
27 constructor(private router: Router, private http: HttpClient, private cookie: CookieService) { }
\r
29 async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
\r
31 if (this.cookie.get('access_token') && this.cookie.get('currentUser')) {
\r
32 let currentUser = JSON.parse(this.cookie.get('currentUser'));
\r
33 if(currentUser['permissions'].indexOf('admin') >= 0){
\r
37 this.router.navigate(['/dashboard'], { queryParams: { returnUrl: state.url }});
\r
41 // not logged in so redirect to login page with the return url
\r
42 this.router.navigate(['/dashboard'], { queryParams: { returnUrl: state.url }});
\r