diff options
Diffstat (limited to 'so-monitoring/so-monitoring-ui/src/main/frontend/src/app/auth.guard.ts')
-rw-r--r-- | so-monitoring/so-monitoring-ui/src/main/frontend/src/app/auth.guard.ts | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/auth.guard.ts b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/auth.guard.ts new file mode 100644 index 0000000000..f437a21710 --- /dev/null +++ b/so-monitoring/so-monitoring-ui/src/main/frontend/src/app/auth.guard.ts @@ -0,0 +1,46 @@ +/** + ============LICENSE_START======================================================= + Copyright (C) 2019 Samsung. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= + + @authors: k.kazak@samsung.com + **/ + +import { Injectable } from '@angular/core'; +import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router} from '@angular/router'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthGuard implements CanActivate { + + constructor(private router:Router) { } + + canActivate( + next: ActivatedRouteSnapshot, + state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean { + if (localStorage.getItem('authdata')) { + // logged in + return true; + } + + // not logged in + this.router.navigate(['/login'], { queryParams: {returnUrl: state.url}}); + return false; + } +} |