From 5d358063490cd716c831e63169efa38752fef522 Mon Sep 17 00:00:00 2001 From: devanshu052000 Date: Wed, 28 May 2025 09:56:16 +0530 Subject: [PATCH] Get permissions data with queries on initial app load --- server/ee | 2 +- server/src/modules/data-queries/repository.ts | 19 +++++++++++++++++++ server/src/modules/versions/repository.ts | 15 +++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/server/ee b/server/ee index f26bc4fc5e..525507d472 160000 --- a/server/ee +++ b/server/ee @@ -1 +1 @@ -Subproject commit f26bc4fc5e9fb9e0986a59b7cca7b84f7950cc08 +Subproject commit 525507d4728d55752ad975cf2ddede203fcec740 diff --git a/server/src/modules/data-queries/repository.ts b/server/src/modules/data-queries/repository.ts index 8caf25ed1f..7ba62a974a 100644 --- a/server/src/modules/data-queries/repository.ts +++ b/server/src/modules/data-queries/repository.ts @@ -50,6 +50,25 @@ export class DataQueryRepository extends Repository { }); } + getAllWithPermissions(appVersionId: string): Promise { + return dbTransactionWrap((manager: EntityManager) => { + return manager + .createQueryBuilder(DataQuery, 'data_query') + .innerJoinAndSelect('data_query.dataSource', 'data_source') + .leftJoinAndSelect('data_query.plugins', 'plugins') + .leftJoinAndSelect('plugins.iconFile', 'iconFile') + .leftJoinAndSelect('plugins.manifestFile', 'manifestFile') + .leftJoinAndSelect('data_query.permissions', 'permission') + .leftJoinAndSelect('permission.users', 'queryUser') + .leftJoinAndSelect('queryUser.user', 'user') + .leftJoinAndSelect('queryUser.permissionGroup', 'group') + .where('data_source.appVersionId = :appVersionId', { appVersionId }) + .where('data_query.app_version_id = :appVersionId', { appVersionId }) + .orderBy('data_query.updatedAt', 'DESC') + .getMany(); + }); + } + async createOne(data: Partial, manager?: EntityManager): Promise { return dbTransactionWrap((manager: EntityManager) => { const newDataQuery = manager.create(DataQuery, { diff --git a/server/src/modules/versions/repository.ts b/server/src/modules/versions/repository.ts index d67b56def1..4cd26d0202 100644 --- a/server/src/modules/versions/repository.ts +++ b/server/src/modules/versions/repository.ts @@ -107,6 +107,21 @@ export class VersionRepository extends Repository { }, manager || this.manager); } + async findDataQueriesForVersionWithPermissions(appVersionId: string, manager?: EntityManager): Promise { + return dbTransactionWrap((manager: EntityManager) => { + return manager + .createQueryBuilder(DataQuery, 'query') + .where('query.appVersionId = :appVersionId', { appVersionId }) + .leftJoinAndSelect('query.dataSource', 'dataSource') + .leftJoinAndSelect('query.permissions', 'permission') + .leftJoinAndSelect('permission.users', 'queryUser') + .leftJoinAndSelect('queryUser.user', 'user') + .leftJoinAndSelect('queryUser.permissionGroup', 'group') + .select(['query', 'dataSource.kind', 'permission', 'queryUser', 'user', 'group']) + .getMany(); + }, manager || this.manager); + } + async findVersion(id: string, manager?: EntityManager): Promise { return await dbTransactionWrap(async (manager: EntityManager) => { const appVersion = await manager.findOneOrFail(AppVersion, {