diff --git a/server/ee b/server/ee index f18319f145..472e07a6f6 160000 --- a/server/ee +++ b/server/ee @@ -1 +1 @@ -Subproject commit f18319f145367e9f6a66110f16587d858470f166 +Subproject commit 472e07a6f66a7c80e42b18256511e8c3a6829eb4 diff --git a/server/src/modules/app-permissions/repositories/page-permissions.repository.ts b/server/src/modules/app-permissions/repositories/page-permissions.repository.ts index 41c4741dc2..7caa5f4318 100644 --- a/server/src/modules/app-permissions/repositories/page-permissions.repository.ts +++ b/server/src/modules/app-permissions/repositories/page-permissions.repository.ts @@ -13,10 +13,21 @@ export class PagePermissionsRepository extends Repository { async getPagePermissions(pageId: string, manager?: EntityManager): Promise { return dbTransactionWrap(async (manager: EntityManager) => { - return manager.find(PagePermission, { + const pagePermissions = await manager.find(PagePermission, { where: { pageId }, relations: ['users', 'users.user', 'users.permissionGroup'], }); + + return pagePermissions.map((permission) => { + if (permission.type === PAGE_PERMISSION_TYPE.GROUP) { + return { + ...permission, + groups: permission.users, + users: undefined, + }; + } + return permission; + }); }, manager || this.manager); } @@ -26,6 +37,11 @@ export class PagePermissionsRepository extends Repository { manager?: EntityManager ): Promise { return dbTransactionWrap(async (manager: EntityManager) => { + const existingPermission = await manager.findOne(PagePermission, { where: { pageId } }); + if (existingPermission) { + throw new Error(`Page permission already exists for Page id: ${pageId}`); + } + const pagePermission = manager.create(PagePermission, { pageId, type,