From 54c285f71c20f9e2f32f29c0b67c7097cb94095f Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 21 Aug 2023 17:56:40 +0300 Subject: [PATCH] Add basic sdk checks --- .../server/src/sdk/app/permissions/index.ts | 32 +++++++++++++++++++ packages/server/src/sdk/index.ts | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 packages/server/src/sdk/app/permissions/index.ts diff --git a/packages/server/src/sdk/app/permissions/index.ts b/packages/server/src/sdk/app/permissions/index.ts new file mode 100644 index 0000000000..ad78310bb5 --- /dev/null +++ b/packages/server/src/sdk/app/permissions/index.ts @@ -0,0 +1,32 @@ +import { + DocumentType, + PermissionLevel, + VirtualDocumentType, +} from "@budibase/types" +import { isViewID } from "../../../db/utils" + +type ResourceActionAllowedResult = + | { allowed: true } + | { + allowed: false + level: PermissionLevel + resourceType: DocumentType | VirtualDocumentType + } + +export async function resourceActionAllowed({ + resourceId, + level, +}: { + resourceId: string + level: PermissionLevel +}): Promise { + if (!isViewID(resourceId)) { + return { allowed: true } + } + + return { + allowed: false, + level, + resourceType: VirtualDocumentType.VIEW, + } +} diff --git a/packages/server/src/sdk/index.ts b/packages/server/src/sdk/index.ts index 85ac483c05..24eb1ebf3c 100644 --- a/packages/server/src/sdk/index.ts +++ b/packages/server/src/sdk/index.ts @@ -8,6 +8,7 @@ import { default as rows } from "./app/rows" import { default as users } from "./users" import { default as plugins } from "./plugins" import * as views from "./app/views" +import * as permissions from "./app/permissions" const sdk = { backups, @@ -20,6 +21,7 @@ const sdk = { queries, plugins, views, + permissions, } // default export for TS