149 lines
4.1 KiB
TypeScript
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 {}
|