From 9b38095aba6a82c57ed16383ca1243414921e5e4 Mon Sep 17 00:00:00 2001 From: Thomas Rittson <31796059+eliykat@users.noreply.github.com> Date: Thu, 22 Apr 2021 18:13:43 +1000 Subject: [PATCH] Use jslib unauthGuard, add lockGuard support (#939) * Use jslib unauthGuard, add lockGuard support * bump jslib --- jslib | 2 +- src/app/accounts/lock.component.ts | 7 ------ src/app/app-routing.module.ts | 9 ++++++-- src/app/services/services.module.ts | 4 +++- src/app/services/unauth-guard.service.ts | 29 ------------------------ 5 files changed, 11 insertions(+), 40 deletions(-) delete mode 100644 src/app/services/unauth-guard.service.ts diff --git a/jslib b/jslib index 3c872e56f2..36641f07b9 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 3c872e56f27ae78fb922b765d7601886b5c39f78 +Subproject commit 36641f07b9807d90270ccd743d16b903cb558078 diff --git a/src/app/accounts/lock.component.ts b/src/app/accounts/lock.component.ts index 5b0cf025fd..ffafceb0fa 100644 --- a/src/app/accounts/lock.component.ts +++ b/src/app/accounts/lock.component.ts @@ -33,13 +33,6 @@ export class LockComponent extends BaseLockComponent { async ngOnInit() { await super.ngOnInit(); - const authed = await this.userService.isAuthenticated(); - if (!authed) { - this.router.navigate(['/']); - } else if (await this.cryptoService.hasKey()) { - this.router.navigate(['vault']); - } - this.onSuccessfulSubmit = () => { const previousUrl = this.routerService.getPreviousUrl(); if (previousUrl !== '/' && previousUrl.indexOf('lock') === -1) { diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index c8d497b798..a0ef4e9178 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -87,9 +87,10 @@ import { VaultComponent } from './vault/vault.component'; import { OrganizationGuardService } from './services/organization-guard.service'; import { OrganizationTypeGuardService } from './services/organization-type-guard.service'; -import { UnauthGuardService } from './services/unauth-guard.service'; import { AuthGuardService } from 'jslib/angular/services/auth-guard.service'; +import { LockGuardService } from 'jslib/angular/services/lock-guard.service'; +import { UnauthGuardService } from 'jslib/angular/services/unauth-guard.service'; import { Permissions } from 'jslib/enums/permissions'; @@ -122,7 +123,11 @@ const routes: Routes = [ canActivate: [UnauthGuardService], data: { titleId: 'passwordHint' }, }, - { path: 'lock', component: LockComponent }, + { + path: 'lock', + component: LockComponent, + canActivate: [LockGuardService], + }, { path: 'verify-email', component: VerifyEmailTokenComponent }, { path: 'accept-organization', diff --git a/src/app/services/services.module.ts b/src/app/services/services.module.ts index 6789886b5c..5214ace35d 100644 --- a/src/app/services/services.module.ts +++ b/src/app/services/services.module.ts @@ -16,10 +16,11 @@ import { EventService } from './event.service'; import { OrganizationGuardService } from './organization-guard.service'; import { OrganizationTypeGuardService } from './organization-type-guard.service'; import { RouterService } from './router.service'; -import { UnauthGuardService } from './unauth-guard.service'; import { AuthGuardService } from 'jslib/angular/services/auth-guard.service'; import { BroadcasterService } from 'jslib/angular/services/broadcaster.service'; +import { LockGuardService } from 'jslib/angular/services/lock-guard.service'; +import { UnauthGuardService } from 'jslib/angular/services/unauth-guard.service'; import { ValidationService } from 'jslib/angular/services/validation.service'; import { ApiService } from 'jslib/services/api.service'; @@ -190,6 +191,7 @@ export function initFactory(): Function { UnauthGuardService, RouterService, EventService, + LockGuardService, { provide: AuditServiceAbstraction, useValue: auditService }, { provide: AuthServiceAbstraction, useValue: authService }, { provide: CipherServiceAbstraction, useValue: cipherService }, diff --git a/src/app/services/unauth-guard.service.ts b/src/app/services/unauth-guard.service.ts deleted file mode 100644 index a5df3be3ba..0000000000 --- a/src/app/services/unauth-guard.service.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Injectable } from '@angular/core'; -import { - CanActivate, - Router, -} from '@angular/router'; - -import { UserService } from 'jslib/abstractions/user.service'; -import { VaultTimeoutService } from 'jslib/abstractions/vaultTimeout.service'; - -@Injectable() -export class UnauthGuardService implements CanActivate { - constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService, - private router: Router) { } - - async canActivate() { - const isAuthed = await this.userService.isAuthenticated(); - if (isAuthed) { - const locked = await this.vaultTimeoutService.isLocked(); - if (locked) { - this.router.navigate(['lock']); - } else { - this.router.navigate(['vault']); - } - return false; - } - - return true; - } -}