generated from bastian/boilerplate
184 lines
5.9 KiB
TypeScript
184 lines
5.9 KiB
TypeScript
import type { Routes } from '@angular/router';
|
|
import { permissionGuard } from './core/permission.guard';
|
|
import { devRoutes } from './core/dev-routes';
|
|
|
|
export const routes: Routes = [
|
|
{
|
|
path: '',
|
|
loadComponent: () => import('./layout/app-shell').then((m) => m.AppShellComponent),
|
|
children: [
|
|
{
|
|
path: '',
|
|
title: 'Dashboard',
|
|
loadComponent: () =>
|
|
import('./features/dashboard/dashboard.page').then((m) => m.DashboardPageComponent),
|
|
},
|
|
{
|
|
path: 'projekte',
|
|
title: 'Projekte',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['projects.use'] },
|
|
loadComponent: () =>
|
|
import('./features/projects/projects.page').then((m) => m.ProjectsPageComponent),
|
|
},
|
|
{
|
|
path: 'projekte/:id/:section',
|
|
title: 'HausPilot-Projekt',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['projects.use'] },
|
|
loadComponent: () =>
|
|
import('./features/projects/project-workspace.page').then(
|
|
(m) => m.ProjectWorkspacePageComponent,
|
|
),
|
|
},
|
|
{
|
|
path: 'projekte/:id',
|
|
title: 'Projekt',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['projects.use'] },
|
|
loadComponent: () =>
|
|
import('./features/projects/project-detail.page').then(
|
|
(m) => m.ProjectDetailPageComponent,
|
|
),
|
|
},
|
|
{
|
|
path: 'einladungen',
|
|
title: 'Einladungen',
|
|
loadComponent: () =>
|
|
import('./features/projects/invitations.page').then((m) => m.InvitationsPageComponent),
|
|
},
|
|
{
|
|
path: 'einladungen/:token',
|
|
title: 'Projekteinladung',
|
|
loadComponent: () =>
|
|
import('./features/projects/invitations.page').then((m) => m.InvitationsPageComponent),
|
|
},
|
|
{
|
|
path: 'profil',
|
|
title: 'Profil',
|
|
loadComponent: () =>
|
|
import('./features/profile/profile.page').then((m) => m.ProfilePageComponent),
|
|
},
|
|
{
|
|
path: 'account/security',
|
|
title: 'Account-Sicherheit',
|
|
loadComponent: () =>
|
|
import('./features/account/account-security.page').then(
|
|
(m) => m.AccountSecurityPageComponent,
|
|
),
|
|
},
|
|
{
|
|
path: 'notifications',
|
|
title: 'Benachrichtigungen',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['notifications.readOwn'] },
|
|
loadComponent: () =>
|
|
import('./features/notifications/notifications.page').then(
|
|
(m) => m.NotificationsPageComponent,
|
|
),
|
|
},
|
|
{
|
|
path: 'sessions',
|
|
title: 'Eigene Sessions',
|
|
loadComponent: () =>
|
|
import('./features/sessions/sessions.page').then((m) => m.SessionsPageComponent),
|
|
},
|
|
{
|
|
path: 'items',
|
|
title: 'Items',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['items.read'] },
|
|
loadComponent: () =>
|
|
import('./features/items/items.page').then((m) => m.ItemsPageComponent),
|
|
},
|
|
{
|
|
path: 'benutzer',
|
|
title: 'Benutzerverwaltung',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['users.read'] },
|
|
loadComponent: () =>
|
|
import('./features/users/users.page').then((m) => m.UsersPageComponent),
|
|
},
|
|
{
|
|
path: 'admin/users',
|
|
title: 'Admin / Benutzer',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['users.read'] },
|
|
loadComponent: () =>
|
|
import('./features/admin/admin-users.page').then((m) => m.AdminUsersPageComponent),
|
|
},
|
|
{
|
|
path: 'admin/users/:id',
|
|
title: 'Admin / Benutzer',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['users.read'] },
|
|
loadComponent: () =>
|
|
import('./features/admin/admin-user-detail.page').then(
|
|
(m) => m.AdminUserDetailPageComponent,
|
|
),
|
|
},
|
|
{
|
|
path: 'rollen',
|
|
title: 'Rollenverwaltung',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['roles.read'] },
|
|
loadComponent: () =>
|
|
import('./features/roles/roles.page').then((m) => m.RolesPageComponent),
|
|
},
|
|
{
|
|
path: 'admin/roles',
|
|
title: 'Admin / Rollen',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['roles.read'] },
|
|
loadComponent: () =>
|
|
import('./features/admin/admin-roles.page').then((m) => m.AdminRolesPageComponent),
|
|
},
|
|
{
|
|
path: 'admin/roles/:id',
|
|
title: 'Admin / Rolle',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['roles.read'] },
|
|
loadComponent: () =>
|
|
import('./features/admin/admin-role-detail.page').then(
|
|
(m) => m.AdminRoleDetailPageComponent,
|
|
),
|
|
},
|
|
{
|
|
path: 'audit-log',
|
|
title: 'Audit-Log',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['audit.read'] },
|
|
loadComponent: () =>
|
|
import('./features/audit/audit.page').then((m) => m.AuditPageComponent),
|
|
},
|
|
{
|
|
path: 'admin/audit',
|
|
title: 'Admin / Audit',
|
|
canActivate: [permissionGuard],
|
|
data: { permissions: ['audit.read'] },
|
|
loadComponent: () =>
|
|
import('./features/audit/audit.page').then((m) => m.AuditPageComponent),
|
|
},
|
|
{
|
|
path: '403',
|
|
title: 'Keine Berechtigung',
|
|
loadComponent: () =>
|
|
import('./features/errors/forbidden.page').then((m) => m.ForbiddenPageComponent),
|
|
},
|
|
{
|
|
path: 'fehler',
|
|
title: 'Fehler',
|
|
loadComponent: () =>
|
|
import('./features/errors/error.page').then((m) => m.ErrorPageComponent),
|
|
},
|
|
...devRoutes,
|
|
{
|
|
path: '**',
|
|
title: 'Nicht gefunden',
|
|
loadComponent: () =>
|
|
import('./features/errors/not-found.page').then((m) => m.NotFoundPageComponent),
|
|
},
|
|
],
|
|
},
|
|
];
|