import {Injectable} from '@angular/core'; import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router'; @Injectable() export class LoginGuardSQL implements CanActivate { constructor(private router: Router) { } canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { if (localStorage.getItem('currentUser')) { let currentUser = JSON.parse(localStorage.getItem('currentUser')); if (currentUser.permission === 1) { // logged and correct permission so return true return true; } } // not logged in so redirect to login page with the return url this.router.navigate(['/login'], {queryParams: {returnUrl: state.url}}); return false; } } @Injectable() export class LoginGuardHL implements CanActivate { constructor(private router: Router) { } canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { if (localStorage.getItem('currentUser')) { let currentUser = JSON.parse(localStorage.getItem('currentUser')); if (currentUser.permission >= 2) { // logged and correct permission so return true return true; } } // not logged in so redirect to login page with the return url this.router.navigate(['/login'], {queryParams: {returnUrl: state.url}}); return false; } } @Injectable() export class LoginGuardMT implements CanActivate { constructor(private router: Router) { } canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { if (localStorage.getItem('currentUser')) { let currentUser = JSON.parse(localStorage.getItem('currentUser')); if (currentUser.permission >= 3) { // logged and correct permission so return true return true; } } // not logged in so redirect to login page with the return url this.router.navigate(['/login'], {queryParams: {returnUrl: state.url}}); return false; } } @Injectable() export class LoginGuardAdmin implements CanActivate { constructor(private router: Router) { } canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { if (localStorage.getItem('currentUser')) { let currentUser = JSON.parse(localStorage.getItem('currentUser')); if (currentUser.permission === 4) { // logged and correct permission so return true return true; } } // not logged in so redirect to login page with the return url this.router.navigate(['/login'], {queryParams: {returnUrl: state.url}}); return false; } }