diff --git a/server/src/modules/data-sources/ability/index.ts b/server/src/modules/data-sources/ability/index.ts index 13c9be760c..60686e24d7 100644 --- a/server/src/modules/data-sources/ability/index.ts +++ b/server/src/modules/data-sources/ability/index.ts @@ -88,13 +88,10 @@ export class FeatureAbilityFactory extends AbilityFactory } if (resourcePermissions?.configurableDataSourceId?.length) { - can([FEATURE_KEY.GET, FEATURE_KEY.TEST_CONNECTION, FEATURE_KEY.GET_BY_ENVIRONMENT], DataSource); + can([FEATURE_KEY.GET], DataSource); if (dataSourceId && resourcePermissions?.configurableDataSourceId?.includes(dataSourceId)) { - can( - [FEATURE_KEY.GET, FEATURE_KEY.UPDATE, FEATURE_KEY.GET_BY_ENVIRONMENT, FEATURE_KEY.TEST_CONNECTION], - DataSource - ); + can([FEATURE_KEY.UPDATE, FEATURE_KEY.GET_BY_ENVIRONMENT, FEATURE_KEY.TEST_CONNECTION], DataSource); } } @@ -102,12 +99,11 @@ export class FeatureAbilityFactory extends AbilityFactory can([FEATURE_KEY.GET_BY_ENVIRONMENT, FEATURE_KEY.GET, FEATURE_KEY.TEST_CONNECTION], DataSource); return; } - if ( - resourcePermissions.usableDataSourcesId?.length && - dataSourceId && - resourcePermissions?.usableDataSourcesId?.includes(dataSourceId) - ) { - can([FEATURE_KEY.GET, FEATURE_KEY.GET_BY_ENVIRONMENT, FEATURE_KEY.TEST_CONNECTION], DataSource); + if (resourcePermissions.usableDataSourcesId?.length) { + can([FEATURE_KEY.GET], DataSource); + if (dataSourceId && resourcePermissions?.usableDataSourcesId?.includes(dataSourceId)) { + can([FEATURE_KEY.GET_BY_ENVIRONMENT, FEATURE_KEY.TEST_CONNECTION], DataSource); + } return; } }