Skip to content

Commit 942b404

Browse files
[DSC-1857] replace script find one with new auth feature
1 parent 8b9d2a3 commit 942b404

3 files changed

Lines changed: 11 additions & 36 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
@@ -39,4 +39,6 @@ export enum FeatureID {
3939
EPersonForgotPassword = 'epersonForgotPassword',
4040
ShowClaimItem = 'showClaimItem',
4141
CanCorrectItem = 'canCorrectItem',
42+
CanExportMetadata = 'canExportMetadata',
43+
CanImportMetadata = 'canImportMetadata',
4244
}

src/app/menu.resolver.spec.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,15 @@ 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';
1716
import { cold } from 'jasmine-marbles';
1817
import { createSuccessfulRemoteDataObject$ } from './shared/remote-data.utils';
1918
import { createPaginatedList } from './shared/testing/utils.test';
2019
import { SectionDataService } from './core/layout/section-data.service';
21-
import createSpy = jasmine.createSpy;
2220
import { ConfigurationDataService } from './core/data/configuration-data.service';
21+
import createSpy = jasmine.createSpy;
2322

2423
const BOOLEAN = { t: true, f: false };
2524
const MENU_STATE = {
@@ -68,7 +67,6 @@ describe('MenuResolver', () => {
6867
let menuService;
6968
let sectionsService;
7069
let authorizationService;
71-
let scriptService;
7270
let configService;
7371

7472
beforeEach(waitForAsync(() => {
@@ -82,9 +80,7 @@ describe('MenuResolver', () => {
8280
authorizationService = jasmine.createSpyObj('authorizationService', {
8381
isAuthorized: observableOf(true)
8482
});
85-
scriptService = jasmine.createSpyObj('scriptService', {
86-
scriptWithNameExistsAndCanExecute: observableOf(true)
87-
});
83+
8884
configService = jasmine.createSpyObj('ConfigurationDataService', {
8985
findByPropertyName: observableOf({})
9086
});
@@ -96,7 +92,6 @@ describe('MenuResolver', () => {
9692
{ provide: MenuService, useValue: menuService },
9793
{ provide: SectionDataService, useValue: sectionsService },
9894
{ provide: AuthorizationDataService, useValue: authorizationService },
99-
{ provide: ScriptDataService, useValue: scriptService },
10095
{ provide: ConfigurationDataService, useValue: configService },
10196
{
10297
provide: NgbModal, useValue: {
@@ -409,7 +404,7 @@ describe('MenuResolver', () => {
409404
describe('for site admin', () => {
410405
beforeEach(() => {
411406
authorizationService.isAuthorized = createSpy('isAuthorized').and.callFake((featureID: FeatureID) => {
412-
return observableOf(featureID === FeatureID.AdministratorOf);
407+
return observableOf(featureID === FeatureID.AdministratorOf || featureID === FeatureID.CanExportMetadata || featureID === FeatureID.CanImportMetadata);
413408
});
414409
});
415410

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';
@@ -72,7 +69,6 @@ export class MenuResolver implements Resolve<boolean> {
7269
protected menuService: MenuService,
7370
protected authorizationService: AuthorizationDataService,
7471
protected modalService: NgbModal,
75-
protected scriptDataService: ScriptDataService,
7672
protected sectionDataService: SectionDataService,
7773
protected configService: ConfigurationDataService,
7874
) {
@@ -549,18 +545,9 @@ export class MenuResolver implements Resolve<boolean> {
549545
];
550546
menuList.forEach((menuSection) => this.menuService.addSection(MenuID.ADMIN, menuSection));
551547

552-
observableCombineLatest([
553-
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
554-
this.authorizationService.isAuthorized(FeatureID.IsCommunityAdmin),
555-
this.authorizationService.isAuthorized(FeatureID.IsCollectionAdmin),
556-
]).pipe(
557-
filter(([isAdmin, isCommunityAdmin, isCollectionAdmin]) =>
558-
isAdmin || isCollectionAdmin || isCommunityAdmin
559-
),
548+
this.authorizationService.isAuthorized(FeatureID.CanExportMetadata).pipe(
549+
filter((canExport) => canExport),
560550
take(1),
561-
switchMap(() => this.scriptDataService.scriptWithNameExistsAndCanExecute(METADATA_EXPORT_SCRIPT_NAME)),
562-
filter((metadataExportScriptExists: boolean) => metadataExportScriptExists),
563-
take(1)
564551
).subscribe(() => {
565552
// Hides the export menu for unauthorised people
566553
// If in the future more sub-menus are added,
@@ -682,18 +669,9 @@ export class MenuResolver implements Resolve<boolean> {
682669
const menuList = [];
683670
menuList.forEach((menuSection) => this.menuService.addSection(MenuID.ADMIN, menuSection));
684671

685-
observableCombineLatest([
686-
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
687-
this.authorizationService.isAuthorized(FeatureID.IsCommunityAdmin),
688-
this.authorizationService.isAuthorized(FeatureID.IsCollectionAdmin),
689-
]).pipe(
690-
filter(([isAdmin, isCommunityAdmin, isCollectionAdmin]) =>
691-
isAdmin || isCollectionAdmin || isCommunityAdmin
692-
),
672+
this.authorizationService.isAuthorized(FeatureID.CanImportMetadata).pipe(
673+
filter((canImport) => canImport),
693674
take(1),
694-
switchMap(() => this.scriptDataService.scriptWithNameExistsAndCanExecute(METADATA_IMPORT_SCRIPT_NAME)),
695-
filter((metadataImportScriptExists: boolean) => metadataImportScriptExists),
696-
take(1)
697675
).subscribe(() => {
698676
// Hides the import menu for unauthorised people
699677
// If in the future more sub-menus are added,

0 commit comments

Comments
 (0)