diff --git a/setup-wizard/src/app/app-routing.module.ts b/setup-wizard/src/app/app-routing.module.ts index 51c88cf7a..3cb20ecdd 100644 --- a/setup-wizard/src/app/app-routing.module.ts +++ b/setup-wizard/src/app/app-routing.module.ts @@ -1,10 +1,12 @@ import { NgModule } from '@angular/core' import { PreloadAllModules, RouterModule, Routes } from '@angular/router' +import { NavGuard } from './guards/nav-guard' const routes: Routes = [ { path: 'init', loadChildren: () => import('./pages/init/init.module').then( m => m.InitPageModule), + canActivate: [NavGuard], }, { path: 'product-key', @@ -13,22 +15,27 @@ const routes: Routes = [ { path: 'home', loadChildren: () => import('./pages/home/home.module').then( m => m.HomePageModule), + canActivate: [NavGuard], }, { path: 'recover', loadChildren: () => import('./pages/recover/recover.module').then( m => m.RecoverPageModule), + canActivate: [NavGuard], }, { path: 'embassy', loadChildren: () => import('./pages/embassy/embassy.module').then( m => m.EmbassyPageModule), + canActivate: [NavGuard], }, { path: 'loading', loadChildren: () => import('./pages/loading/loading.module').then( m => m.LoadingPageModule), + canActivate: [NavGuard], }, { path: 'success', loadChildren: () => import('./pages/success/success.module').then( m => m.SuccessPageModule), + canActivate: [NavGuard], }, ] diff --git a/setup-wizard/src/app/guards/nav-guard.ts b/setup-wizard/src/app/guards/nav-guard.ts new file mode 100644 index 000000000..e633f93c8 --- /dev/null +++ b/setup-wizard/src/app/guards/nav-guard.ts @@ -0,0 +1,22 @@ +import { Injectable } from '@angular/core' +import { CanActivate, Router } from '@angular/router' +import { HttpService } from '../services/api/http.service' + +@Injectable({ + providedIn: 'root', +}) +export class NavGuard implements CanActivate { + constructor ( + private readonly router: Router, + private readonly httpService: HttpService, + ) { } + + canActivate (): boolean { + if (this.httpService.productKey) { + return true + } else { + this.router.navigateByUrl('product-key') + return false + } + } +} diff --git a/setup-wizard/src/app/pages/success/success.module.ts b/setup-wizard/src/app/pages/success/success.module.ts index 15a4a6a2b..ee263fe27 100644 --- a/setup-wizard/src/app/pages/success/success.module.ts +++ b/setup-wizard/src/app/pages/success/success.module.ts @@ -18,4 +18,8 @@ import { SuccessPageRoutingModule } from './success-routing.module' ], declarations: [SuccessPage], }) -export class SuccessPageModule { } +export class SuccessPageModule { + constructor () { + console.log('SuccessModule loaded.') + } +}