Skip to content

Commit b4a6bf3

Browse files
[DSC-1857] configure new auth features
1 parent aaaae17 commit b4a6bf3

6 files changed

Lines changed: 15 additions & 31 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: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,14 @@
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';
19+
import { ScriptDataService } from '../../../core/data/processes/script-data.service';
2420
import { ExportBatchSelectorComponent } from '../../dso-selector/modal-wrappers/export-batch-selector/export-batch-selector.component';
2521
import { ExportMetadataCsvSelectorComponent } from '../../dso-selector/modal-wrappers/export-metadata-csv-selector/export-metadata-csv-selector.component';
2622
import { ExportMetadataXlsSelectorComponent } from '../../dso-selector/modal-wrappers/export-metadata-xls-selector/export-metadata-xls-selector.component';
@@ -56,14 +52,11 @@ export class ExportMenuProvider extends AbstractExpandableMenuProvider {
5652
}
5753

5854
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]) => {
55+
return this.authorizationService.isAuthorized(FeatureID.CanExportMetadata).pipe(
56+
map((authorized: boolean) => {
6457
return [
6558
{
66-
visible: authorized && metadataExportScriptExists,
59+
visible: authorized,
6760
model: {
6861
type: MenuItemType.ONCLICK,
6962
text: 'menu.section.export_metadata_csv',
@@ -73,7 +66,7 @@ export class ExportMenuProvider extends AbstractExpandableMenuProvider {
7366
},
7467
},
7568
{
76-
visible: authorized && metadataExportScriptExists,
69+
visible: authorized,
7770
model: {
7871
type: MenuItemType.ONCLICK,
7972
text: 'menu.section.export_metadata_xls',
@@ -83,7 +76,7 @@ export class ExportMenuProvider extends AbstractExpandableMenuProvider {
8376
},
8477
},
8578
{
86-
visible: authorized && metadataExportScriptExists,
79+
visible: authorized,
8780
model: {
8881
type: MenuItemType.ONCLICK,
8982
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: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,14 @@
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';
19+
import { ScriptDataService } from '../../../core/data/processes/script-data.service';
2420
import { MenuItemType } from '../menu-item-type.model';
2521
import { PartialMenuSection } from '../menu-provider.model';
2622
import { AbstractExpandableMenuProvider } from './helper-providers/expandable-menu-provider';
@@ -52,22 +48,19 @@ export class ImportMenuProvider extends AbstractExpandableMenuProvider {
5248
}
5349

5450
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]) => {
51+
return this.authorizationService.isAuthorized(FeatureID.CanImportMetadata).pipe(
52+
map((authorized: boolean) => {
6053
return [
6154
{
62-
visible: authorized && metadataImportScriptExists,
55+
visible: authorized,
6356
model: {
6457
type: MenuItemType.LINK,
6558
text: 'menu.section.import_metadata',
6659
link: '/admin/metadata-import',
6760
},
6861
},
6962
{
70-
visible: authorized && metadataImportScriptExists,
63+
visible: authorized,
7164
model: {
7265
type: MenuItemType.LINK,
7366
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)