Skip to content

Commit 297b5f5

Browse files
committed
Merge branch 'main' into DURACOM-248-ANGULAR-17
# Conflicts: # yarn.lock
2 parents abae9b9 + 1e33960 commit 297b5f5

189 files changed

Lines changed: 2532 additions & 2371 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
#CHROME_VERSION: "90.0.4430.212-1"
3434
# Bump Node heap size (OOM in CI after upgrading to Angular 15)
3535
NODE_OPTIONS: '--max-old-space-size=4096'
36-
# Project name to use when running docker-compose prior to e2e tests
36+
# Project name to use when running "docker compose" prior to e2e tests
3737
COMPOSE_PROJECT_NAME: 'ci'
3838
strategy:
3939
# Create a matrix of Node versions to test against (in parallel)
@@ -108,12 +108,12 @@ jobs:
108108
path: 'coverage/dspace-angular/lcov.info'
109109
retention-days: 14
110110

111-
# Using docker-compose start backend using CI configuration
111+
# Using "docker compose" start backend using CI configuration
112112
# and load assetstore from a cached copy
113113
- name: Start DSpace REST Backend via Docker (for e2e tests)
114114
run: |
115-
docker-compose -f ./docker/docker-compose-ci.yml up -d
116-
docker-compose -f ./docker/cli.yml -f ./docker/cli.assetstore.yml run --rm dspace-cli
115+
docker compose -f ./docker/docker-compose-ci.yml up -d
116+
docker compose -f ./docker/cli.yml -f ./docker/cli.assetstore.yml run --rm dspace-cli
117117
docker container ls
118118
119119
# Run integration tests via Cypress.io
@@ -182,7 +182,7 @@ jobs:
182182
run: kill -9 $(lsof -t -i:4000)
183183

184184
- name: Shutdown Docker containers
185-
run: docker-compose -f ./docker/docker-compose-ci.yml down
185+
run: docker compose -f ./docker/docker-compose-ci.yml down
186186

187187
# Codecov upload is a separate job in order to allow us to restart this separate from the entire build/test
188188
# job above. This is necessary because Codecov uploads seem to randomly fail at times.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
"date-fns-tz": "^1.3.7",
9595
"deepmerge": "^4.3.1",
9696
"ejs": "^3.1.9",
97-
"express": "^4.18.2",
97+
"express": "^4.19.2",
9898
"express-rate-limit": "^5.1.3",
9999
"fast-json-patch": "^3.1.1",
100100
"filesize": "^6.1.0",

src/app/access-control/access-control-routes.ts

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import { AbstractControl } from '@angular/forms';
2-
import { Route } from '@angular/router';
2+
import {
3+
mapToCanActivate,
4+
Route,
5+
} from '@angular/router';
36
import {
47
DYNAMIC_ERROR_MESSAGES_MATCHER,
58
DynamicErrorMessagesMatcher,
69
} from '@ng-dynamic-forms/core';
710

8-
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
11+
import { i18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
912
import { GroupAdministratorGuard } from '../core/data/feature-authorization/feature-authorization-guard/group-administrator.guard';
1013
import { SiteAdministratorGuard } from '../core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
1114
import {
@@ -39,76 +42,76 @@ export const ROUTES: Route[] = [
3942
path: EPERSON_PATH,
4043
component: EPeopleRegistryComponent,
4144
resolve: {
42-
breadcrumb: I18nBreadcrumbResolver,
45+
breadcrumb: i18nBreadcrumbResolver,
4346
},
4447
providers,
4548
data: { title: 'admin.access-control.epeople.title', breadcrumbKey: 'admin.access-control.epeople' },
46-
canActivate: [SiteAdministratorGuard],
49+
canActivate: mapToCanActivate([SiteAdministratorGuard]),
4750
},
4851
{
4952
path: `${EPERSON_PATH}/create`,
5053
component: EPersonFormComponent,
5154
resolve: {
52-
breadcrumb: I18nBreadcrumbResolver,
55+
breadcrumb: i18nBreadcrumbResolver,
5356
},
5457
providers,
5558
data: { title: 'admin.access-control.epeople.add.title', breadcrumbKey: 'admin.access-control.epeople.add' },
56-
canActivate: [SiteAdministratorGuard],
59+
canActivate: mapToCanActivate([SiteAdministratorGuard]),
5760
},
5861
{
5962
path: `${EPERSON_PATH}/:id/edit`,
6063
component: EPersonFormComponent,
6164
resolve: {
62-
breadcrumb: I18nBreadcrumbResolver,
65+
breadcrumb: i18nBreadcrumbResolver,
6366
ePerson: EPersonResolver,
6467
},
6568
providers,
6669
data: { title: 'admin.access-control.epeople.edit.title', breadcrumbKey: 'admin.access-control.epeople.edit' },
67-
canActivate: [SiteAdministratorGuard],
70+
canActivate: mapToCanActivate([SiteAdministratorGuard]),
6871
},
6972
{
7073
path: GROUP_PATH,
7174
component: GroupsRegistryComponent,
7275
resolve: {
73-
breadcrumb: I18nBreadcrumbResolver,
76+
breadcrumb: i18nBreadcrumbResolver,
7477
},
7578
providers,
7679
data: { title: 'admin.access-control.groups.title', breadcrumbKey: 'admin.access-control.groups' },
77-
canActivate: [GroupAdministratorGuard],
80+
canActivate: mapToCanActivate([GroupAdministratorGuard]),
7881
},
7982
{
8083
path: `${GROUP_PATH}/create`,
8184
component: GroupFormComponent,
8285
resolve: {
83-
breadcrumb: I18nBreadcrumbResolver,
86+
breadcrumb: i18nBreadcrumbResolver,
8487
},
8588
providers,
8689
data: {
8790
title: 'admin.access-control.groups.title.addGroup',
8891
breadcrumbKey: 'admin.access-control.groups.addGroup',
8992
},
90-
canActivate: [GroupAdministratorGuard],
93+
canActivate: mapToCanActivate([GroupAdministratorGuard]),
9194
},
9295
{
9396
path: `${GROUP_PATH}/:groupId/edit`,
9497
component: GroupFormComponent,
9598
resolve: {
96-
breadcrumb: I18nBreadcrumbResolver,
99+
breadcrumb: i18nBreadcrumbResolver,
97100
},
98101
providers,
99102
data: {
100103
title: 'admin.access-control.groups.title.singleGroup',
101104
breadcrumbKey: 'admin.access-control.groups.singleGroup',
102105
},
103-
canActivate: [GroupPageGuard],
106+
canActivate: mapToCanActivate([GroupPageGuard]),
104107
},
105108
{
106109
path: 'bulk-access',
107110
component: BulkAccessComponent,
108111
resolve: {
109-
breadcrumb: I18nBreadcrumbResolver,
112+
breadcrumb: i18nBreadcrumbResolver,
110113
},
111114
data: { title: 'admin.access-control.bulk-access.title', breadcrumbKey: 'admin.access-control.bulk-access' },
112-
canActivate: [SiteAdministratorGuard],
115+
canActivate: mapToCanActivate([SiteAdministratorGuard]),
113116
},
114117
];

src/app/access-control/group-registry/group-form/group-form.component.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ import { HALEndpointService } from '../../../core/shared/hal-endpoint.service';
5353
import { NoContent } from '../../../core/shared/NoContent.model';
5454
import { PageInfo } from '../../../core/shared/page-info.model';
5555
import { UUIDService } from '../../../core/shared/uuid.service';
56+
import { XSRFService } from '../../../core/xsrf/xsrf.service';
5657
import { AlertComponent } from '../../../shared/alert/alert.component';
5758
import { ContextHelpDirective } from '../../../shared/context-help.directive';
5859
import { FormBuilderService } from '../../../shared/form/builder/form-builder.service';
@@ -244,6 +245,7 @@ describe('GroupFormComponent', () => {
244245
{ provide: HttpClient, useValue: {} },
245246
{ provide: ObjectCacheService, useValue: {} },
246247
{ provide: UUIDService, useValue: {} },
248+
{ provide: XSRFService, useValue: {} },
247249
{ provide: Store, useValue: {} },
248250
{ provide: RemoteDataBuildService, useValue: {} },
249251
{ provide: HALEndpointService, useValue: {} },

src/app/admin/admin-ldn-services/admin-ldn-services-routes.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Routes } from '@angular/router';
22

3-
import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
4-
import { NavigationBreadcrumbResolver } from '../../core/breadcrumbs/navigation-breadcrumb.resolver';
3+
import { i18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
4+
import { navigationBreadcrumbResolver } from '../../core/breadcrumbs/navigation-breadcrumb.resolver';
55
import { LdnServiceFormComponent } from './ldn-service-form/ldn-service-form.component';
66
import { LdnServicesOverviewComponent } from './ldn-services-directory/ldn-services-directory.component';
77

@@ -10,18 +10,18 @@ const moduleRoutes: Routes = [
1010
path: '',
1111
pathMatch: 'full',
1212
component: LdnServicesOverviewComponent,
13-
resolve: { breadcrumb: I18nBreadcrumbResolver },
13+
resolve: { breadcrumb: i18nBreadcrumbResolver },
1414
data: { title: 'ldn-registered-services.title', breadcrumbKey: 'ldn-registered-services.new' },
1515
},
1616
{
1717
path: 'new',
18-
resolve: { breadcrumb: NavigationBreadcrumbResolver },
18+
resolve: { breadcrumb: navigationBreadcrumbResolver },
1919
component: LdnServiceFormComponent,
2020
data: { title: 'ldn-register-new-service.title', breadcrumbKey: 'ldn-register-new-service' },
2121
},
2222
{
2323
path: 'edit/:serviceId',
24-
resolve: { breadcrumb: NavigationBreadcrumbResolver },
24+
resolve: { breadcrumb: navigationBreadcrumbResolver },
2525
component: LdnServiceFormComponent,
2626
data: { title: 'ldn-edit-service.title', breadcrumbKey: 'ldn-edit-service' },
2727
},

src/app/admin/admin-notifications/admin-notifications-routes.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Route } from '@angular/router';
22

3-
import { AuthenticatedGuard } from '../../core/auth/authenticated.guard';
4-
import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
5-
import { QualityAssuranceBreadcrumbResolver } from '../../core/breadcrumbs/quality-assurance-breadcrumb.resolver';
3+
import { authenticatedGuard } from '../../core/auth/authenticated.guard';
4+
import { i18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
5+
import { qualityAssuranceBreadcrumbResolver } from '../../core/breadcrumbs/quality-assurance-breadcrumb.resolver';
66
import { AdminNotificationsPublicationClaimPageResolver } from '../../quality-assurance-notifications-pages/notifications-suggestion-targets-page/notifications-suggestion-targets-page-resolver.service';
77
import { QualityAssuranceEventsPageComponent } from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.component';
8-
import { QualityAssuranceEventsPageResolver } from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.resolver';
9-
import { SourceDataResolver } from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-data.resolver';
8+
import { qualityAssuranceEventsPageResolver } from '../../quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.resolver';
9+
import { qualityAssuranceSourceDataResolver } from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-data.resolver';
1010
import { QualityAssuranceSourcePageComponent } from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page.component';
1111
import { QualityAssuranceSourcePageResolver } from '../../quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page-resolver.service';
1212
import { QualityAssuranceTopicsPageComponent } from '../../quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page.component';
@@ -19,12 +19,12 @@ import {
1919

2020
export const ROUTES: Route[] = [
2121
{
22-
canActivate: [ AuthenticatedGuard ],
22+
canActivate: [ authenticatedGuard ],
2323
path: `${PUBLICATION_CLAIMS_PATH}`,
2424
component: AdminNotificationsPublicationClaimPageComponent,
2525
pathMatch: 'full',
2626
resolve: {
27-
breadcrumb: I18nBreadcrumbResolver,
27+
breadcrumb: i18nBreadcrumbResolver,
2828
suggestionTargetParams: AdminNotificationsPublicationClaimPageResolver,
2929
},
3030
data: {
@@ -34,12 +34,12 @@ export const ROUTES: Route[] = [
3434
},
3535
},
3636
{
37-
canActivate: [AuthenticatedGuard],
37+
canActivate: [authenticatedGuard],
3838
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId`,
3939
component: QualityAssuranceTopicsPageComponent,
4040
pathMatch: 'full',
4141
resolve: {
42-
breadcrumb: QualityAssuranceBreadcrumbResolver,
42+
breadcrumb: qualityAssuranceBreadcrumbResolver,
4343
openaireQualityAssuranceTopicsParams: QualityAssuranceTopicsPageResolver,
4444
},
4545
data: {
@@ -49,12 +49,12 @@ export const ROUTES: Route[] = [
4949
},
5050
},
5151
{
52-
canActivate: [ AuthenticatedGuard ],
52+
canActivate: [ authenticatedGuard ],
5353
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/target/:targetId`,
5454
component: QualityAssuranceTopicsPageComponent,
5555
pathMatch: 'full',
5656
resolve: {
57-
breadcrumb: I18nBreadcrumbResolver,
57+
breadcrumb: i18nBreadcrumbResolver,
5858
openaireQualityAssuranceTopicsParams: QualityAssuranceTopicsPageResolver,
5959
},
6060
data: {
@@ -64,14 +64,14 @@ export const ROUTES: Route[] = [
6464
},
6565
},
6666
{
67-
canActivate: [AuthenticatedGuard],
67+
canActivate: [authenticatedGuard],
6868
path: `${QUALITY_ASSURANCE_EDIT_PATH}`,
6969
component: QualityAssuranceSourcePageComponent,
7070
pathMatch: 'full',
7171
resolve: {
72-
breadcrumb: I18nBreadcrumbResolver,
72+
breadcrumb: i18nBreadcrumbResolver,
7373
openaireQualityAssuranceSourceParams: QualityAssuranceSourcePageResolver,
74-
sourceData: SourceDataResolver,
74+
sourceData: qualityAssuranceSourceDataResolver,
7575
},
7676
data: {
7777
title: 'admin.notifications.source.breadcrumbs',
@@ -80,13 +80,13 @@ export const ROUTES: Route[] = [
8080
},
8181
},
8282
{
83-
canActivate: [AuthenticatedGuard],
83+
canActivate: [authenticatedGuard],
8484
path: `${QUALITY_ASSURANCE_EDIT_PATH}/:sourceId/:topicId`,
8585
component: QualityAssuranceEventsPageComponent,
8686
pathMatch: 'full',
8787
resolve: {
88-
breadcrumb: QualityAssuranceBreadcrumbResolver,
89-
openaireQualityAssuranceEventsParams: QualityAssuranceEventsPageResolver,
88+
breadcrumb: qualityAssuranceBreadcrumbResolver,
89+
openaireQualityAssuranceEventsParams: qualityAssuranceEventsPageResolver,
9090
},
9191
data: {
9292
title: 'admin.notifications.event.page.title',

src/app/admin/admin-notify-dashboard/admin-notify-dashboard-routes.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
import { Route } from '@angular/router';
1+
import {
2+
mapToCanActivate,
3+
Route,
4+
} from '@angular/router';
25

3-
import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
4-
import { NotifyInfoGuard } from '../../core/coar-notify/notify-info/notify-info.guard';
6+
import { i18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
7+
import { notifyInfoGuard } from '../../core/coar-notify/notify-info/notify-info.guard';
58
import { SiteAdministratorGuard } from '../../core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
69
import { AdminNotifyDashboardComponent } from './admin-notify-dashboard.component';
710
import { AdminNotifyIncomingComponent } from './admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component';
811
import { AdminNotifyOutgoingComponent } from './admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component';
912

1013
export const ROUTES: Route[] = [
1114
{
12-
canActivate: [SiteAdministratorGuard, NotifyInfoGuard],
15+
canActivate: [...mapToCanActivate([SiteAdministratorGuard]), notifyInfoGuard],
1316
path: '',
1417
resolve: {
15-
breadcrumb: I18nBreadcrumbResolver,
18+
breadcrumb: i18nBreadcrumbResolver,
1619
},
1720
component: AdminNotifyDashboardComponent,
1821
pathMatch: 'full',
@@ -24,10 +27,10 @@ export const ROUTES: Route[] = [
2427
{
2528
path: 'inbound',
2629
resolve: {
27-
breadcrumb: I18nBreadcrumbResolver,
30+
breadcrumb: i18nBreadcrumbResolver,
2831
},
2932
component: AdminNotifyIncomingComponent,
30-
canActivate: [SiteAdministratorGuard, NotifyInfoGuard],
33+
canActivate: [...mapToCanActivate([SiteAdministratorGuard]), notifyInfoGuard],
3134
data: {
3235
title: 'admin.notify.dashboard.page.title',
3336
breadcrumbKey: 'admin.notify.dashboard',
@@ -36,10 +39,10 @@ export const ROUTES: Route[] = [
3639
{
3740
path: 'outbound',
3841
resolve: {
39-
breadcrumb: I18nBreadcrumbResolver,
42+
breadcrumb: i18nBreadcrumbResolver,
4043
},
4144
component: AdminNotifyOutgoingComponent,
42-
canActivate: [SiteAdministratorGuard, NotifyInfoGuard],
45+
canActivate: [...mapToCanActivate([SiteAdministratorGuard]), notifyInfoGuard],
4346
data: {
4447
title: 'admin.notify.dashboard.page.title',
4548
breadcrumbKey: 'admin.notify.dashboard',

src/app/admin/admin-registries/admin-registries-routes.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { Route } from '@angular/router';
22

3-
import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
3+
import { i18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver';
44
import { BITSTREAMFORMATS_MODULE_PATH } from './admin-registries-routing-paths';
55
import { MetadataRegistryComponent } from './metadata-registry/metadata-registry.component';
66
import { MetadataSchemaComponent } from './metadata-schema/metadata-schema.component';
77

88
export const ROUTES: Route[] = [
99
{
1010
path: 'metadata',
11-
resolve: { breadcrumb: I18nBreadcrumbResolver },
11+
resolve: { breadcrumb: i18nBreadcrumbResolver },
1212
data: { title: 'admin.registries.metadata.title', breadcrumbKey: 'admin.registries.metadata' },
1313
children: [
1414
{
@@ -17,15 +17,15 @@ export const ROUTES: Route[] = [
1717
},
1818
{
1919
path: ':schemaName',
20-
resolve: { breadcrumb: I18nBreadcrumbResolver },
20+
resolve: { breadcrumb: i18nBreadcrumbResolver },
2121
component: MetadataSchemaComponent,
2222
data: { title: 'admin.registries.schema.title', breadcrumbKey: 'admin.registries.schema' },
2323
},
2424
],
2525
},
2626
{
2727
path: BITSTREAMFORMATS_MODULE_PATH,
28-
resolve: { breadcrumb: I18nBreadcrumbResolver },
28+
resolve: { breadcrumb: i18nBreadcrumbResolver },
2929
loadChildren: () => import('./bitstream-formats/bitstream-formats-routes')
3030
.then((m) => m.ROUTES),
3131
data: { title: 'admin.registries.bitstream-formats.title', breadcrumbKey: 'admin.registries.bitstream-formats' },

0 commit comments

Comments
 (0)