Files
cbsnexora/src/app/users/users-routing.module.ts
T

149 lines
4.1 KiB
TypeScript

/**
* Copyright since 2025 Mifos Initiative
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/** Angular Imports */
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
/** Routing Imports */
import { Route } from '../core/route/route.service';
/** Custom Components */
import { UsersComponent } from './users.component';
import { CreateUserComponent } from './create-user/create-user.component';
import { ViewUserComponent } from './view-user/view-user.component';
import { EditUserComponent } from './edit-user/edit-user.component';
/** Custom Resolvers */
import { UsersResolver } from './users.resolver';
import { UsersTemplateResolver } from './users-template.resolver';
import { UserResolver } from './user.resolver';
/** Custom Resolvers for Zitadel */
import { UsersZitadelResolver } from '../zitadel/users/usersZitadel.resolver';
import { UsersZitadelTemplateResolver } from '../zitadel/users/usersZitadel-template.resolver';
import { UserZitadelResolver } from '../zitadel/users/userZitadel.resolver';
/** Custom Components for Zitadel */
import { UsersComponent as UserZitadelComponent } from '../zitadel/users/users.component';
import { ViewUserComponent as ViewUserZitadelComponent } from '../zitadel/users/view-user/view-user.component';
import { CreateUserComponent as CreateUserZitadelComponent } from '../zitadel/users/create-user/create-user.component';
import { EditUserComponent as EditUserZitadelComponent } from '../zitadel/users/edit-user/edit-user.component';
/** Environment */
import { environment } from '../../environments/environment';
/** Users Routes for Mifos */
const mifosRoutes: Routes = [
{
path: '',
component: UsersComponent,
resolve: { users: UsersResolver }
},
{
path: 'create',
component: CreateUserComponent,
data: { title: 'Create User', breadcrumb: 'Create User' },
resolve: { usersTemplate: UsersTemplateResolver }
},
{
path: ':id',
data: { title: 'View User', routeParamBreadcrumb: 'id' },
children: [
{
path: '',
component: ViewUserComponent,
resolve: { user: UserResolver }
},
{
path: 'edit',
component: EditUserComponent,
data: { title: 'Edit User', breadcrumb: 'Edit', routeResolveBreadcrumb: false },
resolve: {
user: UserResolver,
usersTemplate: UsersTemplateResolver
}
}
]
}
];
/**
* Route definition for Zitadel
*/
const zitadelRoutes: Routes = [
{
path: '',
component: UserZitadelComponent,
resolve: { users: UsersZitadelResolver }
},
{
path: 'create',
component: CreateUserZitadelComponent,
data: { title: 'Create User', breadcrumb: 'Create User' },
resolve: { usersTemplate: UsersTemplateResolver }
},
{
path: ':id',
data: { title: 'View User', routeParamBreadcrumb: 'id' },
children: [
{
path: '',
component: ViewUserZitadelComponent,
resolve: { user: UserZitadelResolver }
},
{
path: 'edit',
component: EditUserZitadelComponent,
data: { title: 'Edit User', breadcrumb: 'Edit', routeResolveBreadcrumb: false },
resolve: {
user: UserZitadelResolver,
usersTemplate: UsersZitadelTemplateResolver
}
}
]
}
];
/**
* Choose the correct route set according to the environment
*/
const selectedRoutes = !environment.OIDC.oidcServerEnabled ? mifosRoutes : zitadelRoutes;
/**
* Final routes with the shell
*/
const routes: Routes = [
Route.withShell([
{
path: 'appusers',
data: { title: 'Users', breadcrumb: 'Users' },
children: selectedRoutes
}
])
];
/**
* Users Routing Module
*
* Configures the users routes.
*/
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
providers: [
UsersResolver,
UsersTemplateResolver,
UserResolver,
UsersZitadelResolver,
UserZitadelResolver,
UsersZitadelTemplateResolver
]
})
export class UsersRoutingModule {}