11import { Injectable } from '@angular/core' ;
2- import { Observable } from 'rxjs' ;
3- import { filter , mapTo } from 'rxjs/operators' ;
2+ import { DataCatalog } from 'models/entities/data-catalog.model' ;
43import { UserPermissionDataService } from 'components/auth/user-permission-data.service' ;
54import { EntityAuthorizationService } from 'components/authorization/entity-authorization.service' ;
5+ import { DataCatalogService } from './data-catalog.service' ;
66import config from '../app.constants' ;
77
88@Injectable ( )
9- export class DataCatalogAuthorizationService extends EntityAuthorizationService {
9+ export class DataCatalogAuthorizationService extends EntityAuthorizationService < DataCatalog > {
1010 // TODO Find a way to not have to inject the service in the child service, only the parent service.
11- static parameters = [ UserPermissionDataService ] ;
12- constructor ( protected userPermissionDataService : UserPermissionDataService ) {
13- super ( userPermissionDataService ) ;
11+ static parameters = [ UserPermissionDataService , DataCatalogService ] ;
12+ constructor (
13+ protected userPermissionDataService : UserPermissionDataService ,
14+ protected entityService : DataCatalogService
15+ ) {
16+ super ( userPermissionDataService , entityService ) ;
1417 }
1518
1619 getEntityType ( ) : string {
@@ -20,13 +23,4 @@ export class DataCatalogAuthorizationService extends EntityAuthorizationService
2023 getCreateActionPermissionType ( ) : string {
2124 return config . actionPermissionTypes . CREATE_DATA_CATALOG . value ;
2225 }
23-
24- // TODO Remove when DataCatalog can be made private
25- /** @override */
26- canRead ( catalogId : string ) : Observable < boolean > {
27- return this . userPermissionDataService . permissions ( ) . pipe (
28- filter ( auth => ! ! auth ) ,
29- mapTo ( true )
30- ) ;
31- }
3226}
0 commit comments