nav guard bugfix (#1037)

Co-authored-by: Drew Ansbacher <drew.ansbacher@spiredigital.com>
This commit is contained in:
Drew Ansbacher
2022-01-06 13:02:01 -07:00
committed by Aiden McClelland
parent 920c86a443
commit a98605a185
3 changed files with 24 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
import { NgModule } from '@angular/core'
import { PreloadAllModules, RouterModule, Routes } from '@angular/router'
import { NavGuard } from './guards/nav-guard'
import { NavGuard, RecoveryNavGuard } from './guards/nav-guard'
const routes: Routes = [
{ path: '', redirectTo: '/product-key', pathMatch: 'full' },
@@ -21,7 +21,7 @@ const routes: Routes = [
{
path: 'recover',
loadChildren: () => import('./pages/recover/recover.module').then( m => m.RecoverPageModule),
canActivate: [NavGuard],
canActivate: [RecoveryNavGuard],
},
{
path: 'embassy',

View File

@@ -1,6 +1,7 @@
import { Injectable } from '@angular/core'
import { CanActivate, Router } from '@angular/router'
import { HttpService } from '../services/api/http.service'
import { StateService } from '../services/state.service'
@Injectable({
providedIn: 'root',
@@ -20,3 +21,23 @@ export class NavGuard implements CanActivate {
}
}
}
@Injectable({
providedIn: 'root',
})
export class RecoveryNavGuard implements CanActivate {
constructor (
private readonly router: Router,
private readonly httpService: HttpService,
private readonly stateService: StateService,
) { }
canActivate (): boolean {
if (this.httpService.productKey || !this.stateService.hasProductKey) {
return true
} else {
this.router.navigateByUrl('product-key')
return false
}
}
}

View File

@@ -18,7 +18,7 @@ export class MockApiService extends ApiService {
async getStatus () {
await pauseFor(1000)
return {
'product-key': true,
'product-key': false,
migrating: false,
}
}