mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
115 lines
3.8 KiB
TypeScript
115 lines
3.8 KiB
TypeScript
import { AbstractControl } from '@angular/forms';
|
|
import { Route } from '@angular/router';
|
|
import {
|
|
DYNAMIC_ERROR_MESSAGES_MATCHER,
|
|
DynamicErrorMessagesMatcher,
|
|
} from '@ng-dynamic-forms/core';
|
|
|
|
import { i18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
|
|
import { groupAdministratorGuard } from '../core/data/feature-authorization/feature-authorization-guard/group-administrator.guard';
|
|
import { siteAdministratorGuard } from '../core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
|
|
import {
|
|
EPERSON_PATH,
|
|
GROUP_PATH,
|
|
} from './access-control-routing-paths';
|
|
import { BulkAccessComponent } from './bulk-access/bulk-access.component';
|
|
import { EPeopleRegistryComponent } from './epeople-registry/epeople-registry.component';
|
|
import { EPersonFormComponent } from './epeople-registry/eperson-form/eperson-form.component';
|
|
import { EPersonResolver } from './epeople-registry/eperson-resolver.service';
|
|
import { GroupFormComponent } from './group-registry/group-form/group-form.component';
|
|
import { groupPageGuard } from './group-registry/group-page.guard';
|
|
import { GroupsRegistryComponent } from './group-registry/groups-registry.component';
|
|
|
|
/**
|
|
* Condition for displaying error messages on email form field
|
|
*/
|
|
export const ValidateEmailErrorStateMatcher: DynamicErrorMessagesMatcher =
|
|
(control: AbstractControl, model: any, hasFocus: boolean) => {
|
|
return ( control.touched && !hasFocus ) || ( control.errors?.emailTaken && hasFocus );
|
|
};
|
|
|
|
const providers = [
|
|
{
|
|
provide: DYNAMIC_ERROR_MESSAGES_MATCHER,
|
|
useValue: ValidateEmailErrorStateMatcher,
|
|
},
|
|
];
|
|
export const ROUTES: Route[] = [
|
|
{
|
|
path: EPERSON_PATH,
|
|
component: EPeopleRegistryComponent,
|
|
resolve: {
|
|
breadcrumb: i18nBreadcrumbResolver,
|
|
},
|
|
providers,
|
|
data: { title: 'admin.access-control.epeople.title', breadcrumbKey: 'admin.access-control.epeople' },
|
|
canActivate: [siteAdministratorGuard],
|
|
},
|
|
{
|
|
path: `${EPERSON_PATH}/create`,
|
|
component: EPersonFormComponent,
|
|
resolve: {
|
|
breadcrumb: i18nBreadcrumbResolver,
|
|
},
|
|
providers,
|
|
data: { title: 'admin.access-control.epeople.add.title', breadcrumbKey: 'admin.access-control.epeople.add' },
|
|
canActivate: [siteAdministratorGuard],
|
|
},
|
|
{
|
|
path: `${EPERSON_PATH}/:id/edit`,
|
|
component: EPersonFormComponent,
|
|
resolve: {
|
|
breadcrumb: i18nBreadcrumbResolver,
|
|
ePerson: EPersonResolver,
|
|
},
|
|
providers,
|
|
data: { title: 'admin.access-control.epeople.edit.title', breadcrumbKey: 'admin.access-control.epeople.edit' },
|
|
canActivate: [siteAdministratorGuard],
|
|
},
|
|
{
|
|
path: GROUP_PATH,
|
|
component: GroupsRegistryComponent,
|
|
resolve: {
|
|
breadcrumb: i18nBreadcrumbResolver,
|
|
},
|
|
providers,
|
|
data: { title: 'admin.access-control.groups.title', breadcrumbKey: 'admin.access-control.groups' },
|
|
canActivate: [groupAdministratorGuard],
|
|
},
|
|
{
|
|
path: `${GROUP_PATH}/create`,
|
|
component: GroupFormComponent,
|
|
resolve: {
|
|
breadcrumb: i18nBreadcrumbResolver,
|
|
},
|
|
providers,
|
|
data: {
|
|
title: 'admin.access-control.groups.title.addGroup',
|
|
breadcrumbKey: 'admin.access-control.groups.addGroup',
|
|
},
|
|
canActivate: [groupAdministratorGuard],
|
|
},
|
|
{
|
|
path: `${GROUP_PATH}/:groupId/edit`,
|
|
component: GroupFormComponent,
|
|
resolve: {
|
|
breadcrumb: i18nBreadcrumbResolver,
|
|
},
|
|
providers,
|
|
data: {
|
|
title: 'admin.access-control.groups.title.singleGroup',
|
|
breadcrumbKey: 'admin.access-control.groups.singleGroup',
|
|
},
|
|
canActivate: [groupPageGuard],
|
|
},
|
|
{
|
|
path: 'bulk-access',
|
|
component: BulkAccessComponent,
|
|
resolve: {
|
|
breadcrumb: i18nBreadcrumbResolver,
|
|
},
|
|
data: { title: 'admin.access-control.bulk-access.title', breadcrumbKey: 'admin.access-control.bulk-access' },
|
|
canActivate: [siteAdministratorGuard],
|
|
},
|
|
];
|