From e026c944db33ec5f619b4bc891ba3b833f1444ee Mon Sep 17 00:00:00 2001 From: Joaquim Verges Date: Tue, 21 Jan 2025 13:50:52 +1300 Subject: [PATCH] [Dashboard] feat: Add Engine instance permission handling and UI components --- .../~/engine/(instance)/[engineId]/layout.tsx | 10 ++++++- .../_utils/getEngineAccessPermission.ts | 29 ++++++++++++------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/engine/(instance)/[engineId]/layout.tsx b/apps/dashboard/src/app/team/[team_slug]/(team)/~/engine/(instance)/[engineId]/layout.tsx index caf355a7713..c7be331548f 100644 --- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/engine/(instance)/[engineId]/layout.tsx +++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/engine/(instance)/[engineId]/layout.tsx @@ -89,7 +89,15 @@ function EngineInstanceLayoutContent(props: { ); } - if (permission.status === 401 || permission.status === 500) { + if (permission.status === 500) { + return ( + +

Engine Instance Could Not Be Reached

+
+ ); + } + + if (permission.status === 401) { return (
diff --git a/apps/dashboard/src/app/team/[team_slug]/(team)/~/engine/_utils/getEngineAccessPermission.ts b/apps/dashboard/src/app/team/[team_slug]/(team)/~/engine/_utils/getEngineAccessPermission.ts index 0a5c6a98773..bb795b2b6b2 100644 --- a/apps/dashboard/src/app/team/[team_slug]/(team)/~/engine/_utils/getEngineAccessPermission.ts +++ b/apps/dashboard/src/app/team/[team_slug]/(team)/~/engine/_utils/getEngineAccessPermission.ts @@ -2,16 +2,23 @@ export async function getEngineAccessPermission(params: { authToken: string; instanceUrl: string; }) { - const res = await fetch(`${params.instanceUrl}auth/permissions/get-all`, { - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${params.authToken}`, - }, - }); + try { + const res = await fetch(`${params.instanceUrl}auth/permissions/get-all`, { + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${params.authToken}`, + }, + }); - return { - ok: res.ok, // has access if this is true - status: res.status, - }; + return { + ok: res.ok, // has access if this is true + status: res.status, + }; + } catch { + return { + ok: false, + status: 500, + }; + } }