we_bstly-web/src/app/app-routing.module.ts

67 lines
4.2 KiB
TypeScript
Raw Normal View History

2020-11-02 08:29:52 +01:00
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AuthGuard, AuthUpdateGuard, AuthenticatedGuard, AnonymousGuard } from './auth/auth.guard';
2021-03-11 19:52:37 +01:00
import { HomeComponent, ImprintComponent, PrivacyPolicyComponent, TermsOfServiceComponent } from './pages/home/home.component';
2021-01-12 19:29:00 +01:00
import { HomeClubComponent } from './pages/home/club/home-club.component';
import { HomeGeneralComponent } from './pages/home/general/home-general.component';
import { HomePrivacyComponent } from './pages/home/privacy/home-privacy.component';
import { HomeServicesComponent } from './pages/home/services/home-services.component';
2020-11-02 08:29:52 +01:00
import { LoginComponent } from './pages/login/login.component';
2021-01-12 19:29:00 +01:00
import { LoginTotpComponent } from './pages/login-totp/login-totp.component';
2020-11-02 08:29:52 +01:00
import { FormLoginComponent } from './pages/form-login/form-login.component';
2021-01-12 19:29:00 +01:00
import { FormLoginTotpComponent } from './pages/form-login-totp/form-login-totp.component';
2020-11-02 08:29:52 +01:00
import { PasswordComponent } from './pages/password/password.component';
2021-01-12 19:29:00 +01:00
import { PasswordResetComponent } from './pages/password-reset/password-reset.component';
2020-11-02 08:29:52 +01:00
import { AccountComponent } from './pages/account/account.component';
import { RegisterComponent } from './pages/register/register.component';
import { TokensComponent } from './pages/tokens/tokens.component';
2021-03-13 09:47:25 +01:00
import { ServicesComponent } from './pages/services/services.component';
2020-11-02 08:29:52 +01:00
import { InfoComponent } from './pages/account/info/info.component';
2021-03-11 19:52:37 +01:00
import { ProfileComponent } from './pages/account/profile/profile.component';
2020-11-02 08:29:52 +01:00
import { VoucherComponent } from './pages/account/voucher/voucher.component';
import { SecurityComponent } from './pages/account/security/security.component';
import { UnavailableComponent } from './pages/unavailable/unavailable.component';
2021-01-12 19:29:00 +01:00
import { NotfoundComponent } from './pages/notfound/notfound.component';
2020-11-02 08:29:52 +01:00
const routes: Routes = [
2021-03-11 19:52:37 +01:00
{ path: '', redirectTo: "/account", pathMatch: 'full' },
2021-01-12 19:29:00 +01:00
{
path: '', component: HomeComponent, canActivate: [AuthUpdateGuard], runGuardsAndResolvers: 'always', children: [
{ path: 'general', component: HomeGeneralComponent, canActivate: [AuthUpdateGuard] },
{ path: 'privacy', component: HomePrivacyComponent, canActivate: [AuthUpdateGuard] },
{ path: 'services', component: HomeServicesComponent, canActivate: [AuthUpdateGuard] },
{ path: 'club', component: HomeClubComponent, canActivate: [AuthUpdateGuard] },
]
},
{ path: 'imprint', component: ImprintComponent, canActivate: [AuthUpdateGuard] },
{ path: 'privacy-policy', component: PrivacyPolicyComponent, canActivate: [AuthUpdateGuard] },
2021-03-11 19:52:37 +01:00
{ path: 'terms-of-service', component: TermsOfServiceComponent, canActivate: [AuthUpdateGuard] },
2020-11-02 08:29:52 +01:00
{ path: 'login', component: LoginComponent, canActivate: [AnonymousGuard] },
2021-01-12 19:29:00 +01:00
{ path: 'login/totp', component: LoginTotpComponent, canActivate: [AnonymousGuard] },
2020-11-02 08:29:52 +01:00
{ path: 'external-login', component: FormLoginComponent, canActivate: [AnonymousGuard] },
2021-01-12 19:29:00 +01:00
{ path: 'external-login/totp', component: FormLoginTotpComponent, canActivate: [AnonymousGuard] },
2020-11-02 08:29:52 +01:00
{ path: 'password', component: PasswordComponent, canActivate: [AnonymousGuard] },
2021-01-12 19:29:00 +01:00
{ path: 'password-reset', component: PasswordResetComponent, canActivate: [AnonymousGuard] },
2021-03-13 09:47:25 +01:00
{ path: 'services', component: ServicesComponent, canActivate: [AuthenticatedGuard] },
2020-11-02 08:29:52 +01:00
{
path: 'account', component: AccountComponent, canActivate: [AuthenticatedGuard], children: [
2021-01-12 19:29:00 +01:00
{ path: 'info', component: InfoComponent, canActivate: [AuthenticatedGuard] },
2021-03-11 19:52:37 +01:00
{ path: 'profile', component: ProfileComponent, canActivate: [AuthenticatedGuard] },
2021-01-12 19:29:00 +01:00
{ path: 'voucher', component: VoucherComponent, canActivate: [AuthenticatedGuard] },
{ path: 'security', component: SecurityComponent, canActivate: [AuthenticatedGuard] }
2020-11-02 08:29:52 +01:00
]
},
{ path: 'register', component: RegisterComponent, canActivate: [AnonymousGuard] },
{ path: 'tokens', component: TokensComponent, canActivate: [AuthGuard] },
{ path: 'unavailable', component: UnavailableComponent },
{ path: '**', component: NotfoundComponent, pathMatch: 'full' },
];
@NgModule({
imports: [RouterModule.forRoot(routes, { onSameUrlNavigation: 'reload' })],
exports: [RouterModule]
})
export class AppRoutingModule { }