2021-03-13 10:08:54 +01:00
|
|
|
import {NgModule} from '@angular/core';
|
|
|
|
import {Routes, RouterModule} from '@angular/router';
|
2020-11-02 08:29:52 +01:00
|
|
|
|
2021-03-13 10:08:54 +01:00
|
|
|
import {AuthGuard, AuthUpdateGuard, AuthenticatedGuard, AnonymousGuard} from './auth/auth.guard';
|
|
|
|
import {ImprintComponent, PrivacyPolicyComponent, TermsOfServiceComponent} from './pages/general/general.component';
|
|
|
|
import {LoginComponent} from './pages/login/login.component';
|
|
|
|
import {LoginTotpComponent} from './pages/login-totp/login-totp.component';
|
|
|
|
import {FormLoginComponent} from './pages/form-login/form-login.component';
|
|
|
|
import {FormLoginTotpComponent} from './pages/form-login-totp/form-login-totp.component';
|
|
|
|
import {PasswordComponent} from './pages/password/password.component';
|
|
|
|
import {PasswordResetComponent} from './pages/password-reset/password-reset.component';
|
|
|
|
import {AccountComponent} from './pages/account/account.component';
|
|
|
|
import {RegisterComponent} from './pages/register/register.component';
|
|
|
|
import {TokensComponent} from './pages/tokens/tokens.component';
|
|
|
|
import {ServicesComponent} from './pages/services/services.component';
|
|
|
|
import {InfoComponent} from './pages/account/info/info.component';
|
|
|
|
import {ProfileComponent} from './pages/account/profile/profile.component';
|
|
|
|
import {VoucherComponent} from './pages/account/voucher/voucher.component';
|
|
|
|
import {SecurityComponent} from './pages/account/security/security.component';
|
|
|
|
import {UnavailableComponent} from './pages/unavailable/unavailable.component';
|
|
|
|
import {NotfoundComponent} from './pages/notfound/notfound.component';
|
2021-03-18 15:12:30 +01:00
|
|
|
import {UserComponent} from './pages/user/user.component'
|
2021-03-30 15:14:07 +02:00
|
|
|
import {AliasesComponent} from './pages/account/aliases/aliases.component';
|
2020-11-02 08:29:52 +01:00
|
|
|
|
|
|
|
const routes: Routes = [
|
2021-03-20 13:18:27 +01:00
|
|
|
{path: '', redirectTo: "/services", pathMatch: 'full'},
|
2021-03-13 10:08:54 +01:00
|
|
|
{path: 'imprint', component: ImprintComponent, canActivate: [AuthUpdateGuard]},
|
|
|
|
{path: 'privacy-policy', component: PrivacyPolicyComponent, canActivate: [AuthUpdateGuard]},
|
|
|
|
{path: 'terms-of-service', component: TermsOfServiceComponent, canActivate: [AuthUpdateGuard]},
|
|
|
|
{path: 'login', component: LoginComponent, canActivate: [AnonymousGuard]},
|
|
|
|
{path: 'login/totp', component: LoginTotpComponent, canActivate: [AnonymousGuard]},
|
2021-03-14 13:03:11 +01:00
|
|
|
{path: 'service-login', component: FormLoginComponent, canActivate: [AnonymousGuard]},
|
|
|
|
{path: 'service-login/totp', component: FormLoginTotpComponent, canActivate: [AnonymousGuard]},
|
2021-03-13 10:08:54 +01:00
|
|
|
{path: 'password', component: PasswordComponent, canActivate: [AnonymousGuard]},
|
|
|
|
{path: 'password-reset', component: PasswordResetComponent, canActivate: [AnonymousGuard]},
|
|
|
|
{path: 'services', component: ServicesComponent, canActivate: [AuthenticatedGuard]},
|
2020-11-02 08:29:52 +01:00
|
|
|
{
|
|
|
|
path: 'account', component: AccountComponent, canActivate: [AuthenticatedGuard], children: [
|
|
|
|
|
2021-03-13 10:08:54 +01:00
|
|
|
{path: 'info', component: InfoComponent, canActivate: [AuthenticatedGuard]},
|
|
|
|
{path: 'profile', component: ProfileComponent, canActivate: [AuthenticatedGuard]},
|
2021-03-30 15:14:07 +02:00
|
|
|
{path: 'security', component: SecurityComponent, canActivate: [AuthenticatedGuard]},
|
2021-03-13 10:08:54 +01:00
|
|
|
{path: 'voucher', component: VoucherComponent, canActivate: [AuthenticatedGuard]},
|
2021-03-30 15:14:07 +02:00
|
|
|
{path: 'aliases', component: AliasesComponent, canActivate: [AuthenticatedGuard]}
|
2020-11-02 08:29:52 +01:00
|
|
|
]
|
|
|
|
},
|
2021-03-13 10:08:54 +01:00
|
|
|
{path: 'register', component: RegisterComponent, canActivate: [AnonymousGuard]},
|
|
|
|
{path: 'tokens', component: TokensComponent, canActivate: [AuthGuard]},
|
|
|
|
{path: 'unavailable', component: UnavailableComponent},
|
2021-03-18 15:12:30 +01:00
|
|
|
{path: 'p/:username', component: UserComponent, canActivate: [AuthUpdateGuard]},
|
|
|
|
{path: '**', component: NotfoundComponent, pathMatch: 'full', canActivate: [AuthUpdateGuard]},
|
2020-11-02 08:29:52 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
@NgModule({
|
2021-03-13 10:08:54 +01:00
|
|
|
imports: [RouterModule.forRoot(routes, {onSameUrlNavigation: 'reload'})],
|
2020-11-02 08:29:52 +01:00
|
|
|
exports: [RouterModule]
|
|
|
|
})
|
2021-03-13 10:08:54 +01:00
|
|
|
export class AppRoutingModule {}
|