71 lines
2.3 KiB
TypeScript
71 lines
2.3 KiB
TypeScript
import { NgModule } from '@angular/core';
|
|
import { RouterModule } from '@angular/router';
|
|
import { CompositeRouteGuard, IqserPermissionsGuard, IqserRoutes } from '@iqser/common-ui';
|
|
import { RedRoleGuard } from '@users/red-role.guard';
|
|
import { BaseAccountScreenComponent } from './base-account-screen/base-account-screen-component';
|
|
import { PreferencesComponent } from './screens/preferences/preferences.component';
|
|
import { Roles } from '@users/roles';
|
|
import { IqserAuthGuard } from '@iqser/common-ui/lib/users';
|
|
|
|
const routes: IqserRoutes = [
|
|
{ path: '', redirectTo: 'user-profile', pathMatch: 'full' },
|
|
{
|
|
path: 'user-profile',
|
|
component: BaseAccountScreenComponent,
|
|
canActivate: [CompositeRouteGuard],
|
|
data: {
|
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
|
},
|
|
loadChildren: () => import('./screens/user-profile/user-profile.module').then(m => m.UserProfileModule),
|
|
},
|
|
{
|
|
path: 'notifications',
|
|
component: BaseAccountScreenComponent,
|
|
canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
|
|
data: {
|
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
|
permissions: {
|
|
allow: [Roles.notifications.write, 'RED_USER'],
|
|
redirectTo: '/',
|
|
},
|
|
},
|
|
loadChildren: () => import('./screens/notifications/notifications.module').then(m => m.NotificationsModule),
|
|
},
|
|
{
|
|
path: 'preferences',
|
|
component: BaseAccountScreenComponent,
|
|
canActivate: [CompositeRouteGuard],
|
|
data: {
|
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
|
screen: 'preferences',
|
|
},
|
|
children: [
|
|
{
|
|
path: '',
|
|
component: PreferencesComponent,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: 'warnings-preferences',
|
|
component: BaseAccountScreenComponent,
|
|
canActivate: [CompositeRouteGuard],
|
|
data: {
|
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
|
screen: 'warnings-preferences',
|
|
},
|
|
children: [
|
|
{
|
|
path: '',
|
|
component: PreferencesComponent,
|
|
},
|
|
],
|
|
},
|
|
];
|
|
|
|
@NgModule({
|
|
imports: [RouterModule.forChild(routes)],
|
|
exports: [RouterModule],
|
|
})
|
|
export class AccountRoutingModule {}
|