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'; constructor(private vaultTimeoutService: VaultTimeoutService, private router: Router, private stateService: StateService) { } async canActivate() { if (!await this.stateService.getIsAuthenticated()) { this.router.navigate(['login']); return false; } if (!await this.vaultTimeoutService.isLocked()) { this.router.navigate([this.homepage]); return false; } return true; } }