Skip to content
This repository has been archived by the owner on Jan 24, 2023. It is now read-only.

Commit

Permalink
Change following review #2
Browse files Browse the repository at this point in the history
- Fix cf package module file name
- Make CUSTOM_USER_PERMISSION_CHECKERS optional
- Remove need to inject CUSTOM_USER_PERMISSION_CHECKERS in multiple cf modules
  • Loading branch information
richard-cox committed Jun 4, 2020
1 parent 619e9b3 commit 4d21e5a
Show file tree
Hide file tree
Showing 16 changed files with 30 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { LongRunningCfOperationsService } from './shared/data-services/long-runn
import { ServiceActionHelperService } from './shared/data-services/service-action-helper.service';
import { CloudFoundryUserProvidedServicesService } from './shared/services/cloud-foundry-user-provided-services.service';
import { CloudFoundryStoreModule } from './store/cloud-foundry.store.module';
import { cfCurrentUserPermissionsService } from './user-permissions/cf-user-permissions-checkers';

@NgModule({
imports: [
Expand All @@ -37,6 +38,7 @@ import { CloudFoundryStoreModule } from './store/cloud-foundry.store.module';
// ])
],
providers: [
...cfCurrentUserPermissionsService,
CfUserService,
CloudFoundryService,
ServiceActionHelperService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { NgModule } from '@angular/core';
import { CoreModule } from '../../../../core/src/core/core.module';
import { SharedModule } from '../../../../core/src/shared/shared.module';
import { CloudFoundrySharedModule } from '../../shared/cf-shared.module';
import { cfCurrentUserPermissionsService } from '../../user-permissions/cf-user-permissions-checkers';
import { ApplicationDeleteComponent } from './application-delete/application-delete.component';
import {
DeleteAppServiceInstancesComponent,
Expand Down Expand Up @@ -78,7 +77,6 @@ import { SshApplicationComponent } from './ssh-application/ssh-application.compo
ApplicationMonitorService,
DatePipe,
ApplicationDeploySourceTypes,
...cfCurrentUserPermissionsService
]
})
export class ApplicationsModule { }
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import { CloudFoundrySharedModule } from '../../shared/cf-shared.module';
import {
CFEndpointsListConfigService,
} from '../../shared/components/list/list-types/cf-endpoints/cf-endpoints-list-config.service';
import { cfCurrentUserPermissionsService } from '../../user-permissions/cf-user-permissions-checkers';
import { AddOrganizationComponent } from './add-organization/add-organization.component';
import {
CreateOrganizationStepComponent,
Expand Down Expand Up @@ -229,7 +228,6 @@ import { RemoveUserComponent } from './users/remove-user/remove-user.component';
CloudFoundryCellService,
UserInviteService,
UserInviteConfigureService,
...cfCurrentUserPermissionsService
],
entryComponents: [
UserInviteConfigurationDialogComponent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { NgModule } from '@angular/core';
import { CoreModule } from '../../../../core/src/core/core.module';
import { SharedModule } from '../../../../core/src/shared/shared.module';
import { CloudFoundrySharedModule } from '../../shared/cf-shared.module';
import { cfCurrentUserPermissionsService } from '../../user-permissions/cf-user-permissions-checkers';
import { CreateApplicationModule } from '../applications/create-application/create-application.module';
import { ServiceBaseComponent } from './service-base/service-base.component';
import { ServiceCatalogPageComponent } from './service-catalog-page/service-catalog-page.component';
Expand Down Expand Up @@ -34,9 +33,6 @@ import { ServiceTabsBaseComponent } from './service-tabs-base/service-tabs-base.
],
exports: [
ServiceTabsBaseComponent,
],
providers: [
...cfCurrentUserPermissionsService
]
})
export class ServiceCatalogModule { }
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import { ServiceCatalogModule } from '../../../../cloud-foundry/src/features/ser
import { CoreModule } from '../../../../core/src/core/core.module';
import { SharedModule } from '../../../../core/src/shared/shared.module';
import { CloudFoundrySharedModule } from '../../shared/cf-shared.module';
import { cfCurrentUserPermissionsService } from '../../user-permissions/cf-user-permissions-checkers';
import { DetachAppsComponent } from './detach-service-instance/detach-apps/detach-apps.component';
import { DetachServiceInstanceComponent } from './detach-service-instance/detach-service-instance.component';
import { ServicesWallComponent } from './services-wall/services-wall.component';
Expand All @@ -28,9 +27,6 @@ import { ServicesRoutingModule } from './services.routing';
ServicesWallComponent,
DetachServiceInstanceComponent,
DetachAppsComponent
],
providers: [
...cfCurrentUserPermissionsService
]
})
export class ServicesModule { }
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import { SharedModule } from '../../../core/src/shared/shared.module';
import {
ApplicationInstanceChartComponent,
} from '../features/applications/application/application-instance-chart/application-instance-chart.component';
import { cfCurrentUserPermissionsService } from '../user-permissions/cf-user-permissions-checkers';
import {
AddServiceInstanceBaseStepComponent,
} from './components/add-service-instance/add-service-instance-base-step/add-service-instance-base-step.component';
Expand Down Expand Up @@ -380,8 +379,7 @@ const cfListCards: Type<CardCell<any>>[] = [
providers: [
ApplicationStateService,
GitSCMService,
CloudFoundryUserProvidedServicesService,
...cfCurrentUserPermissionsService
CloudFoundryUserProvidedServicesService
]
})
export class CloudFoundrySharedModule { }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { NgModule } from '@angular/core';
import { EffectsModule } from '@ngrx/effects';

import { cfCurrentUserPermissionsService } from '../user-permissions/cf-user-permissions-checkers';
import { CloudFoundryReducersModule } from './cloud-foundry.reducers.module';
import { AppVariablesEffect } from './effects/app-variables.effects';
import { AppEffects } from './effects/app.effects';
Expand Down Expand Up @@ -31,9 +30,6 @@ import { UsersRolesEffects } from './effects/users-roles.effects';
CfValidateEffects,
UsersRolesEffects
])
],
providers: [
...cfCurrentUserPermissionsService
]
})
export class CloudFoundryStoreModule { }
10 changes: 6 additions & 4 deletions src/frontend/packages/core/src/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { NgModule, Injectable } from '@angular/core';
import { Injectable, NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { Params, RouteReuseStrategy, RouterStateSnapshot } from '@angular/router';
import { RouterStateSerializer, StoreRouterConnectingModule, DefaultRouterStateSerializer } from '@ngrx/router-store';
import { DefaultRouterStateSerializer, RouterStateSerializer, StoreRouterConnectingModule } from '@ngrx/router-store';
import { Store } from '@ngrx/store';
import { debounceTime, filter, withLatestFrom } from 'rxjs/operators';

import { CfAutoscalerModule } from '../../cf-autoscaler/src/cf-autoscaler.module';
import { CloudFoundryPackageModule } from '../../cloud-foundry/src/cloud-foundry.module';
import { CloudFoundryPackageModule } from '../../cloud-foundry/src/cloud-foundry-package.module';
import { SetRecentlyVisitedEntityAction } from '../../store/src/actions/recently-visited.actions';
import {
UpdateUserFavoriteMetadataAction,
Expand Down Expand Up @@ -35,6 +35,7 @@ import { CustomizationService } from './core/customizations.types';
import { DynamicExtensionRoutes } from './core/extension/dynamic-extension-routes';
import { ExtensionService } from './core/extension/extension-service';
import { getGitHubAPIURL, GITHUB_API_URL } from './core/github.helpers';
import { CurrentUserPermissionsService } from './core/permissions/current-user-permissions.service';
import { UserFavoriteManager } from './core/user-favorite-manager';
import { CustomImportModule } from './custom-import.module';
import { AboutModule } from './features/about/about.module';
Expand Down Expand Up @@ -116,7 +117,8 @@ export class CustomRouterStateSerializer
SidePanelService,
{ provide: GITHUB_API_URL, useFactory: getGitHubAPIURL },
{ provide: RouterStateSerializer, useClass: CustomRouterStateSerializer }, // Create action for router navigation
{ provide: RouteReuseStrategy, useClass: CustomReuseStrategy }
{ provide: RouteReuseStrategy, useClass: CustomReuseStrategy },
CurrentUserPermissionsService
],
bootstrap: [AppComponent]
})
Expand Down
9 changes: 0 additions & 9 deletions src/frontend/packages/core/src/core/core.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ import { MDAppModule } from './md.module';
import { NotSetupGuardService } from './not-setup-guard.service';
import { PageHeaderService } from './page-header-service/page-header.service';
import { PageNotFoundComponentComponent } from './page-not-found-component/page-not-found-component.component';
import {
CurrentUserPermissionsService,
CUSTOM_USER_PERMISSION_CHECKERS,
} from './permissions/current-user-permissions.service';
import { SafeImgPipe } from './safe-img.pipe';
import { StatefulIconComponent } from './stateful-icon/stateful-icon.component';
import { TruncatePipe } from './truncate.pipe';
Expand Down Expand Up @@ -88,11 +84,6 @@ import { WindowRef } from './window-ref/window-ref.service';
PaginationMonitorFactory,
UserProfileService,
EntityServiceFactory,
{
provide: CUSTOM_USER_PERMISSION_CHECKERS,
useValue: []
},
CurrentUserPermissionsService,
{
provide: APP_TITLE,
useFactory: appTitleFactory,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Inject, Injectable } from '@angular/core';
import { Inject, Injectable, Optional } from '@angular/core';
import { Store } from '@ngrx/store';
import { combineLatest, Observable, of } from 'rxjs';
import { distinctUntilChanged, map, switchMap } from 'rxjs/operators';
Expand Down Expand Up @@ -30,12 +30,14 @@ export class CurrentUserPermissionsService {
private allCheckers: ICurrentUserPermissionsChecker[];
constructor(
private store: Store<InternalAppState>,
@Inject(CUSTOM_USER_PERMISSION_CHECKERS) customCheckers: ICurrentUserPermissionsChecker[],
@Optional() @Inject(CUSTOM_USER_PERMISSION_CHECKERS) customCheckers: ICurrentUserPermissionsChecker[],
private logger: LoggerService
) {
// Cannot set default value for parameter as the Optional decorator sets it to null
const nullSafeCustomCheckers = customCheckers || [];
this.allCheckers = [
new StratosUserPermissionsChecker(store),
...customCheckers
...nullSafeCustomCheckers
]
}
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { appReducers } from '../../../../../store/src/reducers.module';
import { TabNavService } from '../../../../tab-nav.service';
import { CoreTestingModule } from '../../../../test-framework/core-test.modules';
import { CoreModule } from '../../../core/core.module';
import { CurrentUserPermissionsService } from '../../../core/permissions/current-user-permissions.service';
import { SharedModule } from '../../../shared/shared.module';
import { SidePanelService } from './../../../shared/services/side-panel.service';
import { EndpointsPageComponent } from './endpoints-page.component';
Expand All @@ -33,7 +34,7 @@ describe('EndpointsPageComponent', () => {
),
NoopAnimationsModule
],
providers: [TabNavService, SidePanelService]
providers: [TabNavService, SidePanelService, CurrentUserPermissionsService]
})
.compileComponents();
}));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { createBasicStoreModule } from '@stratosui/store/testing';
import { TabNavService } from '../../../../tab-nav.service';
import { CoreTestingModule } from '../../../../test-framework/core-test.modules';
import { CoreModule } from '../../../core/core.module';
import { CurrentUserPermissionsService } from '../../../core/permissions/current-user-permissions.service';
import { UserProfileService } from '../../../core/user-profile.service';
import { SharedModule } from '../../../shared/shared.module';
import { EditProfileInfoComponent } from './edit-profile-info.component';
Expand All @@ -27,7 +28,7 @@ describe('EditProfileInfoComponent', () => {
CoreTestingModule,
createBasicStoreModule()
],
providers: [UserProfileService, TabNavService],
providers: [UserProfileService, TabNavService, CurrentUserPermissionsService],
})
.compileComponents();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ import { createBasicStoreModule } from '@stratosui/store/testing';

import { CoreTestingModule } from '../../../../../../test-framework/core-test.modules';
import { CoreModule } from '../../../../../core/core.module';
import { CurrentUserPermissionsService } from '../../../../../core/permissions/current-user-permissions.service';
import { SharedModule } from '../../../../shared.module';
import { EndpointListHelper } from './endpoint-list.helpers';
import { EndpointsListConfigService } from './endpoints-list-config.service';

describe('EndpointsListConfigService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [EndpointsListConfigService, EndpointListHelper],
providers: [EndpointsListConfigService, EndpointListHelper, CurrentUserPermissionsService],
imports: [
CommonModule,
CoreModule,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { APIResource } from '../../../../../store/src/types/api.types';
import { EndpointModel } from '../../../../../store/src/types/endpoint.types';
import { CoreTestingModule } from '../../../../test-framework/core-test.modules';
import { CoreModule } from '../../../core/core.module';
import { CurrentUserPermissionsService } from '../../../core/permissions/current-user-permissions.service';
import { SharedModule } from '../../shared.module';
import { EndpointCardComponent } from './list-types/endpoint/endpoint-card/endpoint-card.component';
import { EndpointListHelper } from './list-types/endpoint/endpoint-list.helpers';
Expand Down Expand Up @@ -125,7 +126,8 @@ describe('ListComponent', () => {
// ApplicationStateService,
PaginationMonitorFactory,
EntityMonitorFactory,
EndpointListHelper
EndpointListHelper,
CurrentUserPermissionsService
],
imports: [
CoreModule,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { Component, TemplateRef } from '@angular/core';
import { Component } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';

import { BaseTestModules, generateBaseTestStoreModules } from '../../test-framework/core-test.helper';
import { UserPermissionDirective } from './user-permission.directive';
import { BaseTestModules } from '../../test-framework/core-test.helper';

@Component({
template: `<input type="text" *appUserPermission="">`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { EntityCatalogHelper } from '../../store/src/entity-catalog/entity-catal
import { EntityCatalogHelpers } from '../../store/src/entity-catalog/entity-catalog.helper';
import { appReducers } from '../../store/src/reducers.module';
import { CoreModule } from '../src/core/core.module';
import { CurrentUserPermissionsService } from '../src/core/permissions/current-user-permissions.service';
import {
ApplicationStateIconComponent,
} from '../src/shared/components/application-state/application-state-icon/application-state-icon.component';
Expand All @@ -35,7 +36,10 @@ import { CoreTestingModule } from './core-test.modules';


@NgModule({
imports: [CoreModule]
imports: [CoreModule],
providers: [
CurrentUserPermissionsService
]
})
export class AppTestModule {
constructor(
Expand Down

0 comments on commit 4d21e5a

Please sign in to comment.