Skip to content

Commit 4ba62f1

Browse files
FrancescoMolinaroAndrea Barbasso
authored andcommitted
Merged in task/dspace-cris-2025_02_x/DSC-1857 (pull request DSpace#4726)
[DSC-1857] configure new auth features Approved-by: Andrea Barbasso
2 parents d2d9f87 + 8de68bf commit 4ba62f1

6 files changed

Lines changed: 13 additions & 33 deletions

File tree

src/app/core/data/feature-authorization/feature-id.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,6 @@ export enum FeatureID {
4343
ShowClaimItem = 'showClaimItem',
4444
CanCorrectItem = 'canCorrectItem',
4545
CanViewInWorkflowSinceStatistics = 'canViewInWorkflowSinceStatistics',
46+
CanExportMetadata = 'canExportMetadata',
47+
CanImportMetadata = 'canImportMetadata',
4648
}

src/app/shared/menu/providers/export.menu.spec.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ import { TestBed } from '@angular/core/testing';
1010
import { of } from 'rxjs';
1111

1212
import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service';
13-
import { ScriptDataService } from '../../../core/data/processes/script-data.service';
1413
import { AuthorizationDataServiceStub } from '../../testing/authorization-service.stub';
15-
import { ScriptServiceStub } from '../../testing/script-service.stub';
1614
import { MenuItemType } from '../menu-item-type.model';
1715
import { PartialMenuSection } from '../menu-provider.model';
1816
import { ExportMenuProvider } from './export.menu';
@@ -59,7 +57,6 @@ describe('ExportMenuProvider', () => {
5957
providers: [
6058
ExportMenuProvider,
6159
{ provide: AuthorizationDataService, useValue: authorizationServiceStub },
62-
{ provide: ScriptDataService, useClass: ScriptServiceStub },
6360
],
6461
});
6562
provider = TestBed.inject(ExportMenuProvider);

src/app/shared/menu/providers/export.menu.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,13 @@
99
import { Injectable } from '@angular/core';
1010
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
1111
import {
12-
combineLatest as observableCombineLatest,
1312
map,
1413
Observable,
1514
of,
1615
} from 'rxjs';
1716

1817
import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service';
1918
import { FeatureID } from '../../../core/data/feature-authorization/feature-id';
20-
import {
21-
METADATA_EXPORT_SCRIPT_NAME,
22-
ScriptDataService,
23-
} from '../../../core/data/processes/script-data.service';
2419
import { ExportBatchSelectorComponent } from '../../dso-selector/modal-wrappers/export-batch-selector/export-batch-selector.component';
2520
import { ExportMetadataCsvSelectorComponent } from '../../dso-selector/modal-wrappers/export-metadata-csv-selector/export-metadata-csv-selector.component';
2621
import { ExportMetadataXlsSelectorComponent } from '../../dso-selector/modal-wrappers/export-metadata-xls-selector/export-metadata-xls-selector.component';
@@ -35,7 +30,6 @@ import { AbstractExpandableMenuProvider } from './helper-providers/expandable-me
3530
export class ExportMenuProvider extends AbstractExpandableMenuProvider {
3631
constructor(
3732
protected authorizationService: AuthorizationDataService,
38-
protected scriptDataService: ScriptDataService,
3933
protected modalService: NgbModal,
4034
) {
4135
super();
@@ -56,14 +50,11 @@ export class ExportMenuProvider extends AbstractExpandableMenuProvider {
5650
}
5751

5852
public getSubSections(): Observable<PartialMenuSection[]> {
59-
return observableCombineLatest([
60-
this.authorizationService.isAuthorized(FeatureID.IsComColAdmin),
61-
this.scriptDataService.scriptWithNameExistsAndCanExecute(METADATA_EXPORT_SCRIPT_NAME),
62-
]).pipe(
63-
map(([authorized, metadataExportScriptExists]: [boolean, boolean]) => {
53+
return this.authorizationService.isAuthorized(FeatureID.CanExportMetadata).pipe(
54+
map((authorized: boolean) => {
6455
return [
6556
{
66-
visible: authorized && metadataExportScriptExists,
57+
visible: authorized,
6758
model: {
6859
type: MenuItemType.ONCLICK,
6960
text: 'menu.section.export_metadata_csv',
@@ -73,7 +64,7 @@ export class ExportMenuProvider extends AbstractExpandableMenuProvider {
7364
},
7465
},
7566
{
76-
visible: authorized && metadataExportScriptExists,
67+
visible: authorized,
7768
model: {
7869
type: MenuItemType.ONCLICK,
7970
text: 'menu.section.export_metadata_xls',
@@ -83,7 +74,7 @@ export class ExportMenuProvider extends AbstractExpandableMenuProvider {
8374
},
8475
},
8576
{
86-
visible: authorized && metadataExportScriptExists,
77+
visible: authorized,
8778
model: {
8879
type: MenuItemType.ONCLICK,
8980
text: 'menu.section.export_batch',

src/app/shared/menu/providers/import.menu.spec.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ import { TestBed } from '@angular/core/testing';
1010
import { of } from 'rxjs';
1111

1212
import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service';
13-
import { ScriptDataService } from '../../../core/data/processes/script-data.service';
1413
import { AuthorizationDataServiceStub } from '../../testing/authorization-service.stub';
15-
import { ScriptServiceStub } from '../../testing/script-service.stub';
1614
import { MenuItemType } from '../menu-item-type.model';
1715
import { PartialMenuSection } from '../menu-provider.model';
1816
import { ImportMenuProvider } from './import.menu';
@@ -58,7 +56,6 @@ describe('ImportMenuProvider', () => {
5856
providers: [
5957
ImportMenuProvider,
6058
{ provide: AuthorizationDataService, useValue: authorizationServiceStub },
61-
{ provide: ScriptDataService, useClass: ScriptServiceStub },
6259
],
6360
});
6461
provider = TestBed.inject(ImportMenuProvider);

src/app/shared/menu/providers/import.menu.ts

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,13 @@
99
import { Injectable } from '@angular/core';
1010
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
1111
import {
12-
combineLatest as observableCombineLatest,
1312
map,
1413
Observable,
1514
of,
1615
} from 'rxjs';
1716

1817
import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service';
1918
import { FeatureID } from '../../../core/data/feature-authorization/feature-id';
20-
import {
21-
METADATA_IMPORT_SCRIPT_NAME,
22-
ScriptDataService,
23-
} from '../../../core/data/processes/script-data.service';
2419
import { MenuItemType } from '../menu-item-type.model';
2520
import { PartialMenuSection } from '../menu-provider.model';
2621
import { AbstractExpandableMenuProvider } from './helper-providers/expandable-menu-provider';
@@ -32,7 +27,6 @@ import { AbstractExpandableMenuProvider } from './helper-providers/expandable-me
3227
export class ImportMenuProvider extends AbstractExpandableMenuProvider {
3328
constructor(
3429
protected authorizationService: AuthorizationDataService,
35-
protected scriptDataService: ScriptDataService,
3630
protected modalService: NgbModal,
3731
) {
3832
super();
@@ -52,22 +46,19 @@ export class ImportMenuProvider extends AbstractExpandableMenuProvider {
5246
}
5347

5448
public getSubSections(): Observable<PartialMenuSection[]> {
55-
return observableCombineLatest([
56-
this.authorizationService.isAuthorized(FeatureID.IsComColAdmin),
57-
this.scriptDataService.scriptWithNameExistsAndCanExecute(METADATA_IMPORT_SCRIPT_NAME),
58-
]).pipe(
59-
map(([authorized, metadataImportScriptExists]) => {
49+
return this.authorizationService.isAuthorized(FeatureID.CanImportMetadata).pipe(
50+
map((authorized: boolean) => {
6051
return [
6152
{
62-
visible: authorized && metadataImportScriptExists,
53+
visible: authorized,
6354
model: {
6455
type: MenuItemType.LINK,
6556
text: 'menu.section.import_metadata',
6657
link: '/admin/metadata-import',
6758
},
6859
},
6960
{
70-
visible: authorized && metadataImportScriptExists,
61+
visible: authorized,
7162
model: {
7263
type: MenuItemType.LINK,
7364
text: 'menu.section.import_batch',

src/config/default-app-config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ export class DefaultAppConfig implements AppConfig {
179179
FeatureID.CoarNotifyEnabled,
180180
FeatureID.CanSeeQA,
181181
FeatureID.IsComColAdmin,
182+
FeatureID.CanExportMetadata,
183+
FeatureID.CanImportMetadata,
182184
];
183185

184186
discoveryAuthorizationFeaturesConfig: DiscoveryConfigurationFeaturesConfig = {

0 commit comments

Comments
 (0)