24 lines
596 B
TypeScript
24 lines
596 B
TypeScript
import {Injectable} from "@angular/core";
|
|
import {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from "@angular/router";
|
|
import {UserService} from "./user.service";
|
|
|
|
@Injectable()
|
|
export class AuthGuard implements CanActivate {
|
|
|
|
constructor(
|
|
private router: Router,
|
|
private userService: UserService
|
|
) {}
|
|
|
|
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
|
|
if (this.userService.getUser()) {
|
|
return true;
|
|
}
|
|
|
|
this.router.navigate(['/auth/login'], {
|
|
queryParams: { returnUrl: state.url },
|
|
});
|
|
return false;
|
|
}
|
|
}
|