From 0cd05a4adf1bcf1e44afd8393c32e67a3cad28e8 Mon Sep 17 00:00:00 2001 From: mike12345567 Date: Tue, 5 Sep 2023 19:58:03 +0100 Subject: [PATCH] Quick fix issue integration tests have displayed, retrieving users through the public API was broken due to a lack of app ID in context. --- .../backend-core/src/context/mainContext.ts | 5 +++++ .../server/src/sdk/app/permissions/index.ts | 20 ++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/backend-core/src/context/mainContext.ts b/packages/backend-core/src/context/mainContext.ts index 61d96bb4b0..f85b757e83 100644 --- a/packages/backend-core/src/context/mainContext.ts +++ b/packages/backend-core/src/context/mainContext.ts @@ -208,6 +208,11 @@ export function getAutomationId(): string | undefined { return context?.automationId } +export function hasAppId(): boolean { + const appId = getAppId() + return !!appId +} + export function getAppId(): string | undefined { const context = Context.get() const foundId = context?.appId diff --git a/packages/server/src/sdk/app/permissions/index.ts b/packages/server/src/sdk/app/permissions/index.ts index 53f6756ae1..1c3f4f0fbd 100644 --- a/packages/server/src/sdk/app/permissions/index.ts +++ b/packages/server/src/sdk/app/permissions/index.ts @@ -84,13 +84,16 @@ export async function allowsExplicitPermissions(resourceId: string) { export async function getResourcePerms( resourceId: string ): Promise { - const db = context.getAppDB() - const body = await db.allDocs( - getRoleParams(null, { - include_docs: true, - }) - ) - const rolesList = body.rows.map(row => row.doc) + let rolesList: Role[] = [] + if (context.hasAppId()) { + const db = context.getAppDB() + const body = await db.allDocs( + getRoleParams(null, { + include_docs: true, + }) + ) + rolesList = body.rows.map(row => row.doc) + } let permissions: ResourcePermissions = {} const permsToInherit = await getInheritablePermissions(resourceId) @@ -128,8 +131,7 @@ export async function getResourcePerms( p[level] = { role, type: PermissionSource.BASE } return p }, {}) - const result = Object.assign(basePermissions, permissions) - return result + return Object.assign(basePermissions, permissions) } export async function getDependantResources(