import { Injectable } from "@angular/core" ; import { CanActivate , Router } from "@angular/router" ; import { StateService } from "jslib-common/abstractions/state.service" ; import { VaultTimeoutService } from "jslib-common/abstractions/vaultTimeout.service" ; @ Injectable ( ) export class LockGuardService implements CanActivate { protected homepage = "vault" ; protected loginpage = "login" ; constructor ( private vaultTimeoutService , private router , private stateService ) { } async canActivate ( ) { if ( await this . vaultTimeoutService . isLocked ( ) ) { return true ; } const redirectUrl = ( await this . stateService . getIsAuthenticated ( ) ) ? [ this . homepage ] : [ this . loginpage ] ; this . router . navigate ( redirectUrl ) ; return false ; } }