diff --git a/server/src/modules/group-permissions/controllers/granular-permissions.controller.ts b/server/src/modules/group-permissions/controllers/granular-permissions.controller.ts index 2554f73291..01ea35593a 100644 --- a/server/src/modules/group-permissions/controllers/granular-permissions.controller.ts +++ b/server/src/modules/group-permissions/controllers/granular-permissions.controller.ts @@ -54,7 +54,7 @@ export class GranularPermissionsController implements IGranularPermissionsContro @User() user: UserEntity, @Param('id') groupId: string ): Promise { - return await this.granularPermissionsService.getAll(groupId, user.organizationId); + return await this.granularPermissionsService.getAll(groupId, user.organizationId, { filterDataSource: true }); } @InitFeature(FEATURE_KEY.UPDATE_GRANULAR_PERMISSIONS) diff --git a/server/src/modules/group-permissions/repository.ts b/server/src/modules/group-permissions/repository.ts index 8a0e58074a..16c315eacb 100644 --- a/server/src/modules/group-permissions/repository.ts +++ b/server/src/modules/group-permissions/repository.ts @@ -5,6 +5,7 @@ import { Injectable } from '@nestjs/common'; import { DataSource, EntityManager, + Equal, FindManyOptions, FindOptionsWhere, ILike, @@ -94,8 +95,19 @@ export class GroupPermissionsRepository extends Repository { }, }; + // Only apply the data source filter if filterDataSource is true + if (searchParam?.filterDataSource) { + findOptions.where = { + ...findOptions.where, + type: Not(Equal(ResourceType.DATA_SOURCE)), + }; + } + if (groupId) { - findOptions.where = { groupId }; + findOptions.where = { + ...findOptions.where, + groupId, + }; } if (name) { diff --git a/server/src/modules/group-permissions/services/granular-permissions.service.ts b/server/src/modules/group-permissions/services/granular-permissions.service.ts index dcfcd057e7..7f3d03ed28 100644 --- a/server/src/modules/group-permissions/services/granular-permissions.service.ts +++ b/server/src/modules/group-permissions/services/granular-permissions.service.ts @@ -7,10 +7,10 @@ import { GroupPermissionsRepository } from '../repository'; import { GranularPermissionsUtilService } from '../util-services/granular-permissions.util.service'; import { LicenseUserService } from '@modules/licensing/services/user.service'; import { GranularPermissions } from '@entities/granular_permissions.entity'; -import { USER_ROLE } from '../constants'; import { GranularPermissionQuerySearchParam } from '../types'; import { IGranularPermissionsService } from '../interfaces/IService'; import { GroupPermissionLicenseUtilService } from '../util-services/license.util.service'; +import { USER_ROLE } from '../constants'; @Injectable() export class GranularPermissionsService implements IGranularPermissionsService { diff --git a/server/src/modules/group-permissions/types/index.ts b/server/src/modules/group-permissions/types/index.ts index c5c9d97bf0..ac338fa52e 100644 --- a/server/src/modules/group-permissions/types/index.ts +++ b/server/src/modules/group-permissions/types/index.ts @@ -19,6 +19,7 @@ export interface GranularPermissionQuerySearchParam { name?: SearchParamItem; type?: string; groupId?: string; + filterDataSource?: boolean; } interface SearchParamItem { value: string;