Skip to content

Commit fa607b2

Browse files
FrancescoMolinaroAndrea Barbasso
authored andcommitted
Merged in task/dspace-cris-2023_02_x/DSC-1857 (pull request DSpace#2517)
[DSC-1857] replace script find one with new auth feature Approved-by: Andrea Barbasso
2 parents 61459ea + 7715c3b commit fa607b2

3 files changed

Lines changed: 10 additions & 35 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
@@ -40,4 +40,6 @@ export enum FeatureID {
4040
ShowClaimItem = 'showClaimItem',
4141
CanCorrectItem = 'canCorrectItem',
4242
CanViewInWorkflowSinceStatistics = 'canViewInWorkflowSinceStatistics',
43+
CanExportMetadata = 'canExportMetadata',
44+
CanImportMetadata = 'canImportMetadata',
4345
}

src/app/menu.resolver.spec.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import { AdminSidebarComponent } from './admin/admin-sidebar/admin-sidebar.compo
1010
import { NO_ERRORS_SCHEMA } from '@angular/core';
1111
import { MenuService } from './shared/menu/menu.service';
1212
import { AuthorizationDataService } from './core/data/feature-authorization/authorization-data.service';
13-
import { ScriptDataService } from './core/data/processes/script-data.service';
1413
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
1514
import { MenuServiceStub } from './shared/testing/menu-service.stub';
1615
import { MenuID } from './shared/menu/menu-id.model';
@@ -70,7 +69,6 @@ describe('MenuResolver', () => {
7069
let menuService;
7170
let sectionsService;
7271
let authorizationService;
73-
let scriptService;
7472
let configService;
7573

7674
beforeEach(waitForAsync(() => {
@@ -84,9 +82,7 @@ describe('MenuResolver', () => {
8482
authorizationService = jasmine.createSpyObj('authorizationService', {
8583
isAuthorized: observableOf(true)
8684
});
87-
scriptService = jasmine.createSpyObj('scriptService', {
88-
scriptWithNameExistsAndCanExecute: observableOf(true)
89-
});
85+
9086
configService = jasmine.createSpyObj('ConfigurationDataService', {
9187
findByPropertyName: observableOf({})
9288
});
@@ -98,7 +94,6 @@ describe('MenuResolver', () => {
9894
{ provide: MenuService, useValue: menuService },
9995
{ provide: SectionDataService, useValue: sectionsService },
10096
{ provide: AuthorizationDataService, useValue: authorizationService },
101-
{ provide: ScriptDataService, useValue: scriptService },
10297
{ provide: AuthService, useValue: AuthServiceStub },
10398
{ provide: ConfigurationDataService, useValue: configService },
10499
{
@@ -412,7 +407,7 @@ describe('MenuResolver', () => {
412407
describe('for site admin', () => {
413408
beforeEach(() => {
414409
authorizationService.isAuthorized = createSpy('isAuthorized').and.callFake((featureID: FeatureID) => {
415-
return observableOf(featureID === FeatureID.AdministratorOf);
410+
return observableOf(featureID === FeatureID.AdministratorOf || featureID === FeatureID.CanExportMetadata || featureID === FeatureID.CanImportMetadata);
416411
});
417412
});
418413

src/app/menu.resolver.ts

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,8 @@ import {
4040
} from './shared/dso-selector/modal-wrappers/export-metadata-xls-selector/export-metadata-xls-selector.component';
4141
import { AuthorizationDataService } from './core/data/feature-authorization/authorization-data.service';
4242
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
43-
import {
44-
METADATA_EXPORT_SCRIPT_NAME,
45-
METADATA_IMPORT_SCRIPT_NAME,
46-
ScriptDataService
47-
} from './core/data/processes/script-data.service';
43+
44+
4845
import {
4946
ExportBatchSelectorComponent
5047
} from './shared/dso-selector/modal-wrappers/export-batch-selector/export-batch-selector.component';
@@ -73,7 +70,6 @@ export class MenuResolver implements Resolve<boolean> {
7370
protected menuService: MenuService,
7471
protected authorizationService: AuthorizationDataService,
7572
protected modalService: NgbModal,
76-
protected scriptDataService: ScriptDataService,
7773
protected authService: AuthService,
7874
protected sectionDataService: SectionDataService,
7975
protected configService: ConfigurationDataService,
@@ -561,18 +557,9 @@ export class MenuResolver implements Resolve<boolean> {
561557
];
562558
menuList.forEach((menuSection) => this.menuService.addSection(MenuID.ADMIN, menuSection));
563559

564-
observableCombineLatest([
565-
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
566-
this.authorizationService.isAuthorized(FeatureID.IsCommunityAdmin),
567-
this.authorizationService.isAuthorized(FeatureID.IsCollectionAdmin),
568-
]).pipe(
569-
filter(([isAdmin, isCommunityAdmin, isCollectionAdmin]) =>
570-
isAdmin || isCollectionAdmin || isCommunityAdmin
571-
),
560+
this.authorizationService.isAuthorized(FeatureID.CanExportMetadata).pipe(
561+
filter((canExport) => canExport),
572562
take(1),
573-
switchMap(() => this.scriptDataService.scriptWithNameExistsAndCanExecute(METADATA_EXPORT_SCRIPT_NAME)),
574-
filter((metadataExportScriptExists: boolean) => metadataExportScriptExists),
575-
take(1)
576563
).subscribe(() => {
577564
// Hides the export menu for unauthorised people
578565
// If in the future more sub-menus are added,
@@ -694,18 +681,9 @@ export class MenuResolver implements Resolve<boolean> {
694681
const menuList = [];
695682
menuList.forEach((menuSection) => this.menuService.addSection(MenuID.ADMIN, menuSection));
696683

697-
observableCombineLatest([
698-
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
699-
this.authorizationService.isAuthorized(FeatureID.IsCommunityAdmin),
700-
this.authorizationService.isAuthorized(FeatureID.IsCollectionAdmin),
701-
]).pipe(
702-
filter(([isAdmin, isCommunityAdmin, isCollectionAdmin]) =>
703-
isAdmin || isCollectionAdmin || isCommunityAdmin
704-
),
684+
this.authorizationService.isAuthorized(FeatureID.CanImportMetadata).pipe(
685+
filter((canImport) => canImport),
705686
take(1),
706-
switchMap(() => this.scriptDataService.scriptWithNameExistsAndCanExecute(METADATA_IMPORT_SCRIPT_NAME)),
707-
filter((metadataImportScriptExists: boolean) => metadataImportScriptExists),
708-
take(1)
709687
).subscribe(() => {
710688
// Hides the import menu for unauthorised people
711689
// If in the future more sub-menus are added,

0 commit comments

Comments
 (0)