2021-04-21 23:52:48 +02:00
|
|
|
import { Injectable } from "@angular/core";
|
|
|
|
import { CanActivate, Router } from "@angular/router";
|
|
|
|
|
2022-04-29 13:33:38 +02:00
|
|
|
import { AuthService } from "jslib-common/abstractions/auth.service";
|
|
|
|
import { AuthenticationStatus } from "jslib-common/enums/authenticationStatus";
|
2021-04-21 23:52:48 +02:00
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
export class UnauthGuardService implements CanActivate {
|
2021-06-08 23:35:03 +02:00
|
|
|
protected homepage = "vault";
|
2022-04-29 13:33:38 +02:00
|
|
|
constructor(private authService: AuthService, private router: Router) {}
|
2021-06-08 23:35:03 +02:00
|
|
|
|
2021-04-21 23:52:48 +02:00
|
|
|
async canActivate() {
|
2022-04-29 13:33:38 +02:00
|
|
|
const authStatus = await this.authService.getAuthStatus();
|
|
|
|
|
|
|
|
if (authStatus === AuthenticationStatus.LoggedOut) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (authStatus === AuthenticationStatus.Locked) {
|
|
|
|
return this.router.createUrlTree(["lock"]);
|
2021-04-21 23:52:48 +02:00
|
|
|
}
|
2022-04-29 13:33:38 +02:00
|
|
|
|
|
|
|
return this.router.createUrlTree([this.homepage]);
|
2021-12-16 13:36:21 +01:00
|
|
|
}
|
2021-04-21 23:52:48 +02:00
|
|
|
}
|