From a7b37a45509f63198fc7ed9e850875e2f6030639 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Mon, 14 Aug 2023 12:04:36 +0100 Subject: [PATCH] Fix trimming extra view fields and ensure empty views allow nothing --- packages/server/src/middleware/trimViewRowInfo.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/server/src/middleware/trimViewRowInfo.ts b/packages/server/src/middleware/trimViewRowInfo.ts index 07e0a344fa..3c6d496d07 100644 --- a/packages/server/src/middleware/trimViewRowInfo.ts +++ b/packages/server/src/middleware/trimViewRowInfo.ts @@ -23,7 +23,7 @@ export default async (ctx: Ctx, next: Next) => { // don't need to trim delete requests if (ctx?.method?.toLowerCase() !== "delete") { - await trimViewFields(ctx.request.body, viewId, tableId) + await trimViewFields(ctx.request.body, viewId) } ctx.params.sourceId = tableId @@ -35,17 +35,10 @@ export default async (ctx: Ctx, next: Next) => { export async function trimViewFields( body: Row, viewId: string, - tableId: string ): Promise { const view = await sdk.views.get(viewId) - if (!view?.schema || !Object.keys(view.schema).length) { - return - } - - const table = await sdk.tables.getTable(tableId) - const { schema } = sdk.views.enrichSchema(view!, table.schema) const allowedKeys = [ - ...Object.keys(schema), + ...Object.keys(view?.schema || {}), ...db.CONSTANT_EXTERNAL_ROW_COLS, ...db.CONSTANT_INTERNAL_ROW_COLS, ]