Files
mina-sidor-fa-web/apps/mina-sidor-fa/src/app/app-routing.module.ts
T
Erik Tiekstra 62fb35ca7e feat(deltagare): Implemented role-check and fetching data when needed. (TV-639)
Squashed commit of the following:

commit be46ec00569f3fa23a439d4fc40bfa8dd2f30ea7
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Fri Sep 24 10:18:33 2021 +0200

    Fixed error-handling for deltagare

commit e18fe76f68f3894198887bf7fe8793dd34905674
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Fri Sep 24 08:35:40 2021 +0200

    Updated tests

commit c8fa577236c1e3a797046d884d91e12e2c1f2c4a
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Fri Sep 24 08:20:18 2021 +0200

    Fixed styling and some functionality

commit bfdcaef5c01edbee584ec0a1c1704983578ff6e5
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Thu Sep 23 16:00:10 2021 +0200

    refactor

commit 5be380af3aaca3c158dcfb1d084e449558f4e720
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Thu Sep 23 15:59:41 2021 +0200

    Update deltagare-tab-reports.component.ts

commit 96c4e36f0ce1a1f607e67ec3a99f18a85221f1d3
Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se>
Date:   Thu Sep 23 15:34:27 2021 +0200

    break up into several components. remove activeTab-observable etc

commit ce2145f09438240d786e58f60e286e6e6f8e7a29
Merge: afc3989 14739fb
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Thu Sep 23 14:05:05 2021 +0200

    Merged develop and resolved conflicts

commit afc39892ea33d2e1add92b2d5cb0d9f23b963666
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Thu Sep 23 13:39:01 2021 +0200

    Added handledare information to avrop-data and removed id from deltagare-card

commit 1f7454a3cb4af09d3fdcb60c1298677d01a5a64a
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Thu Sep 23 12:59:47 2021 +0200

    Implemented more logic inside component instead of service

commit 5af4a9a9f74707169892ce9fe02f7c93285f48cc
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Thu Sep 23 10:50:14 2021 +0200

    Added part of role-check to be able to access deltagare-card

commit 7cf7c1d379583788e5fcbef5fff44b158d028f76
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Sep 22 15:07:40 2021 +0200

    WIP

commit 8466394d617fa573663f3d199414354394d22b31
Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se>
Date:   Wed Sep 22 11:42:32 2021 +0200

    Moved around content for deltagare-card
2021-09-24 10:45:51 +02:00

120 lines
4.1 KiB
TypeScript

import { NgModule } from '@angular/core';
import { ExtraOptions, RouterModule, Routes } from '@angular/router';
import { Feature } from '@msfa-enums/feature.enum';
import { RoleEnum } from '@msfa-enums/role.enum';
import { environment } from '@msfa-environment';
import { AuthGuard } from '@msfa-guards/auth.guard';
import { OrganizationGuard } from '@msfa-guards/organization.guard';
import { RoleGuard } from '@msfa-guards/role.guard';
const activeFeatures: Feature[] = environment.activeFeatures;
const routes: Routes = [
{
path: '',
data: { title: '' },
loadChildren: () => import('./pages/start/start.module').then(m => m.StartModule),
canActivate: [AuthGuard, OrganizationGuard],
},
{
path: 'logga-ut',
data: { title: 'Logga ut' },
loadChildren: () => import('./pages/logout/logout.module').then(m => m.LogoutModule),
canActivate: [AuthGuard],
},
{
path: 'organization-picker',
data: { title: 'Välj organisation' },
loadChildren: () =>
import('./pages/organization-picker/organization-picker.module').then(m => m.OrganizationPickerModule),
canActivate: [AuthGuard],
},
{
path: 'obehorig',
data: { title: 'Saknar behörighet' },
loadChildren: () => import('./pages/unauthorized/unauthorized.module').then(m => m.UnauthorizedModule),
canActivate: [AuthGuard],
},
];
activeFeatures.forEach(feature => {
switch (feature) {
case Feature.ADMINISTRATION:
routes.push({
path: 'administration',
data: { title: 'Administration', expectedRoles: [RoleEnum.MSFA_AuthAdmin] },
loadChildren: () => import('./pages/administration/administration.module').then(m => m.AdministrationModule),
canActivate: [AuthGuard, OrganizationGuard, RoleGuard],
});
break;
case Feature.AVROP:
routes.push({
path: 'nya-deltagare',
data: { title: 'Nya deltagare', expectedRoles: [RoleEnum.MSFA_ReceiveDeltagare] },
loadChildren: () => import('./pages/avrop/avrop.module').then(m => m.AvropModule),
canActivate: [AuthGuard, OrganizationGuard, RoleGuard],
});
break;
case Feature.DELTAGARE:
routes.push({
path: 'deltagare',
data: { title: 'Deltagare', expectedRoles: [RoleEnum.MSFA_ReportAndPlanning, RoleEnum.MSFA_ReceiveDeltagare] },
loadChildren: () => import('./pages/deltagare/deltagare.module').then(m => m.DeltagareModule),
canActivate: [AuthGuard, OrganizationGuard, RoleGuard],
});
break;
case Feature.MY_ACCOUNT:
routes.push({
path: 'mitt-konto',
data: { title: 'Mitt konto' },
loadChildren: () => import('./pages/my-account/my-account.module').then(m => m.MyAccountModule),
canActivate: [AuthGuard, OrganizationGuard],
});
break;
case Feature.RELEASES:
routes.push({
path: 'releases',
data: { title: 'Releaser' },
loadChildren: () => import('./pages/releases/releases.module').then(m => m.ReleasesModule),
canActivate: [AuthGuard],
});
break;
case Feature.MOCK_LOGIN:
routes.push({
path: 'mock-login',
data: { title: 'Mock login' },
loadChildren: () => import('./pages/mock-login/mock-login.module').then(m => m.MockLoginModule),
});
break;
case Feature.ACCESSIBILITY_REPORT:
routes.push({
path: 'tillganglighet',
data: { title: 'Tillgänglighetsredogörelse' },
loadChildren: () => import('./pages/accessibility/accessibility.module').then(m => m.AccessibilityModule),
canActivate: [AuthGuard],
});
break;
default:
break;
}
});
routes.push({
path: '**',
data: { title: 'Sidan hittas inte' },
loadChildren: () => import('./pages/page-not-found/page-not-found.module').then(m => m.PageNotFoundModule),
canActivate: [AuthGuard],
});
const options: ExtraOptions = {
useHash: false,
scrollPositionRestoration: 'enabled',
onSameUrlNavigation: 'reload',
};
@NgModule({
imports: [RouterModule.forRoot(routes, options)],
exports: [RouterModule],
})
export class AppRoutingModule {}