33 lines
633 B
TypeScript
33 lines
633 B
TypeScript
|
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<ResourceActionAllowedResult> {
|
||
|
if (!isViewID(resourceId)) {
|
||
|
return { allowed: true }
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
allowed: false,
|
||
|
level,
|
||
|
resourceType: VirtualDocumentType.VIEW,
|
||
|
}
|
||
|
}
|