From 6230302106426886d20c94e62521970ec75a3dc9 Mon Sep 17 00:00:00 2001 From: Thomas Rittson Date: Tue, 8 Jun 2021 10:04:31 +1000 Subject: [PATCH] Finish refactoring route guards to use jslib --- src/popup/app-routing.module.ts | 19 +++++++-------- src/popup/services/launch-guard.service.ts | 22 +++++++++++++++++ src/popup/services/lock-guard.service.ts | 13 ++++------ .../services/not-private-guard.service.ts | 24 ------------------- src/popup/services/services.module.ts | 6 +++-- src/popup/services/unauth-guard.service.ts | 8 +++---- 6 files changed, 44 insertions(+), 48 deletions(-) create mode 100644 src/popup/services/launch-guard.service.ts delete mode 100644 src/popup/services/not-private-guard.service.ts diff --git a/src/popup/app-routing.module.ts b/src/popup/app-routing.module.ts index 456743c906..100305ede4 100644 --- a/src/popup/app-routing.module.ts +++ b/src/popup/app-routing.module.ts @@ -9,8 +9,7 @@ import { import { AuthGuardService } from 'jslib-angular/services/auth-guard.service'; import { LockGuardService } from './services/lock-guard.service'; -import { NotPrivateGuardService } from './services/not-private-guard.service'; -import { UnauthGuardService } from './services/unauth-guard.service'; +import { LaunchGuardService } from './services/launch-guard.service'; import { EnvironmentComponent } from './accounts/environment.component'; import { HintComponent } from './accounts/hint.component'; @@ -66,13 +65,13 @@ const routes: Routes = [ { path: 'home', component: HomeComponent, - canActivate: [NotPrivateGuardService, UnauthGuardService], + canActivate: [LaunchGuardService], data: { state: 'home' }, }, { path: 'login', component: LoginComponent, - canActivate: [NotPrivateGuardService, UnauthGuardService], + canActivate: [LaunchGuardService], data: { state: 'login' }, }, { @@ -84,19 +83,19 @@ const routes: Routes = [ { path: '2fa', component: TwoFactorComponent, - canActivate: [NotPrivateGuardService, UnauthGuardService], + canActivate: [LaunchGuardService], data: { state: '2fa' }, }, { path: '2fa-options', component: TwoFactorOptionsComponent, - canActivate: [NotPrivateGuardService, UnauthGuardService], + canActivate: [LaunchGuardService], data: { state: '2fa-options' }, }, { path: 'sso', component: SsoComponent, - canActivate: [NotPrivateGuardService, UnauthGuardService], + canActivate: [LaunchGuardService], data: { state: 'sso' }, }, { @@ -107,19 +106,19 @@ const routes: Routes = [ { path: 'register', component: RegisterComponent, - canActivate: [NotPrivateGuardService, UnauthGuardService], + canActivate: [LaunchGuardService], data: { state: 'register' }, }, { path: 'hint', component: HintComponent, - canActivate: [NotPrivateGuardService, UnauthGuardService], + canActivate: [LaunchGuardService], data: { state: 'hint' }, }, { path: 'environment', component: EnvironmentComponent, - canActivate: [NotPrivateGuardService, UnauthGuardService], + canActivate: [LaunchGuardService], data: { state: 'environment' }, }, { diff --git a/src/popup/services/launch-guard.service.ts b/src/popup/services/launch-guard.service.ts new file mode 100644 index 0000000000..fa7f24fcf7 --- /dev/null +++ b/src/popup/services/launch-guard.service.ts @@ -0,0 +1,22 @@ +import { BrowserApi } from '../../browser/browserApi'; + +import { Injectable } from '@angular/core'; +import { + CanActivate, + Router, +} from '@angular/router'; + +import { UnauthGuardService } from './unauth-guard.service'; + +@Injectable() +export class LaunchGuardService implements CanActivate { + constructor(private router: Router, private unauthGuardService: UnauthGuardService) { } + + async canActivate() { + if (BrowserApi.getBackgroundPage() == null) { + this.router.navigate(['private-mode']); + return false; + } + return await this.unauthGuardService.canActivate(); + } +} diff --git a/src/popup/services/lock-guard.service.ts b/src/popup/services/lock-guard.service.ts index a211354c42..ff75580732 100644 --- a/src/popup/services/lock-guard.service.ts +++ b/src/popup/services/lock-guard.service.ts @@ -1,19 +1,16 @@ import { Injectable } from '@angular/core'; -import { - ActivatedRouteSnapshot, - CanActivate, - Router, -} from '@angular/router'; +import { Router } from '@angular/router'; import { UserService } from 'jslib-common/abstractions/user.service'; import { VaultTimeoutService } from 'jslib-common/abstractions/vaultTimeout.service'; +import { LockGuardService as BaseLockGuardService } from 'jslib-angular/services/lock-guard.service'; @Injectable() export class LockGuardService extends BaseLockGuardService { - constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService, - private router: Router) { + constructor(vaultTimeoutService: VaultTimeoutService, userService: UserService, + router: Router) { super(vaultTimeoutService, userService, router); } - protected landingPage = '/tabs/current'; + protected homepage = '/tabs/current'; } diff --git a/src/popup/services/not-private-guard.service.ts b/src/popup/services/not-private-guard.service.ts deleted file mode 100644 index 136a3edaef..0000000000 --- a/src/popup/services/not-private-guard.service.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BrowserApi } from '../../browser/browserApi'; - -import { Injectable } from '@angular/core'; -import { - CanActivate, - Router, -} from '@angular/router'; - -import { UserService } from 'jslib-common/abstractions/user.service'; -import { VaultTimeoutService } from 'jslib-common/abstractions/vaultTimeout.service'; - -@Injectable() -export class NotPrivateGuardService implements CanActivate { - constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService, - private router: Router) { } - - async canActivate() { - if (BrowserApi.getBackgroundPage() == null) { - this.router.navigate(['private-mode']); - return false; - } - return true; - } -} diff --git a/src/popup/services/services.module.ts b/src/popup/services/services.module.ts index f08f8c2053..41e2b17ada 100644 --- a/src/popup/services/services.module.ts +++ b/src/popup/services/services.module.ts @@ -6,11 +6,12 @@ import { import { ToasterModule } from 'angular2-toaster'; +import { LockGuardService } from './lock-guard.service'; import { LaunchGuardService } from './launch-guard.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 { ValidationService } from 'jslib-angular/services/validation.service'; import { BrowserApi } from '../../browser/browserApi'; @@ -115,8 +116,9 @@ export function initFactory(platformUtilsService: PlatformUtilsService, i18nServ providers: [ ValidationService, AuthGuardService, - LaunchGuardService, LockGuardService, + LaunchGuardService, + UnauthGuardService, PopupUtilsService, BroadcasterService, { provide: MessagingService, useValue: messagingService }, diff --git a/src/popup/services/unauth-guard.service.ts b/src/popup/services/unauth-guard.service.ts index 4e2dcfbeae..d765a42ade 100644 --- a/src/popup/services/unauth-guard.service.ts +++ b/src/popup/services/unauth-guard.service.ts @@ -6,14 +6,14 @@ import { import { UserService } from 'jslib-common/abstractions/user.service'; import { VaultTimeoutService } from 'jslib-common/abstractions/vaultTimeout.service'; -import { UnauthGuardService as BaseUnauthGuardService } from 'jslib/angular/services/unauth-guard.service'; +import { UnauthGuardService as BaseUnauthGuardService } from 'jslib-angular/services/unauth-guard.service'; @Injectable() export class UnauthGuardService extends BaseUnauthGuardService { - constructor(private vaultTimeoutService: VaultTimeoutService, private userService: UserService, - private router: Router) { + constructor(vaultTimeoutService: VaultTimeoutService, userService: UserService, + router: Router) { super(vaultTimeoutService, userService, router); } - protected landingPage: '/tabs/current'; + protected homepage = '/tabs/current'; }