23 lines
920 B
TypeScript
23 lines
920 B
TypeScript
import { Injectable } from "@angular/core";
|
|
import { ActivatedRouteSnapshot, CanActivate, Router } from "@angular/router";
|
|
|
|
import { AuthService } from "jslib-common/abstractions/auth.service";
|
|
import { AuthenticationStatus } from "jslib-common/enums/authenticationStatus";
|
|
|
|
@Injectable()
|
|
export class HomeGuard implements CanActivate {
|
|
constructor(private router: Router, private authService: AuthService) {}
|
|
|
|
async canActivate(route: ActivatedRouteSnapshot) {
|
|
const authStatus = await this.authService.getAuthStatus();
|
|
|
|
if (authStatus === AuthenticationStatus.LoggedOut) {
|
|
return this.router.createUrlTree(["/login"], { queryParams: route.queryParams });
|
|
}
|
|
if (authStatus === AuthenticationStatus.Locked) {
|
|
return this.router.createUrlTree(["/lock"], { queryParams: route.queryParams });
|
|
}
|
|
return this.router.createUrlTree(["/vault"], { queryParams: route.queryParams });
|
|
}
|
|
}
|