22 lines
653 B
TypeScript
22 lines
653 B
TypeScript
import { Injectable } from '@angular/core';
|
|
import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
|
|
import { AccountService } from './account.service';
|
|
|
|
@Injectable({providedIn: 'root'})
|
|
export class AuthGuard implements CanActivate {
|
|
constructor(private router: Router,
|
|
private accountService: AccountService) { }
|
|
|
|
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
|
|
const user = this.accountService.userValue;
|
|
|
|
if (user) {
|
|
return true;
|
|
}
|
|
|
|
this.router.navigate(['/login'], {queryParams: {returnURL: state.url}});
|
|
return false;
|
|
}
|
|
}
|
|
|