From 88c9a88da33c26de851d336d595c1232072fbffb Mon Sep 17 00:00:00 2001 From: charles-ramos Date: Tue, 4 Aug 2026 10:40:52 -0300 Subject: [PATCH 1/4] enabling cloud code section --- src/lib/serverInfo.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib/serverInfo.js b/src/lib/serverInfo.js index 688d522b3..94e97822d 100644 --- a/src/lib/serverInfo.js +++ b/src/lib/serverInfo.js @@ -1,5 +1,10 @@ export const ALWAYS_ALLOWED_ROUTES = [ 'overview', + 'cloud_code', + 'jobs', + 'deployments', + 'webhooks', + 'config', 'web-deployment', 'Overview', 'Web Deployment', From 15f57eba15e944bad741261aabf77ec8c6d1644d Mon Sep 17 00:00:00 2001 From: charles-ramos Date: Tue, 4 Aug 2026 10:48:50 -0300 Subject: [PATCH 2/4] enabling cloud code section --- src/lib/serverInfo.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/serverInfo.js b/src/lib/serverInfo.js index 94e97822d..7a4ef8f98 100644 --- a/src/lib/serverInfo.js +++ b/src/lib/serverInfo.js @@ -1,5 +1,6 @@ export const ALWAYS_ALLOWED_ROUTES = [ 'overview', + 'Cloud Code', 'cloud_code', 'jobs', 'deployments', From 6a6bc3e09cd7d17a83237be8447135c09f740cc2 Mon Sep 17 00:00:00 2001 From: charles-ramos Date: Tue, 4 Aug 2026 12:05:47 -0300 Subject: [PATCH 3/4] enabling cloud code section --- src/lib/serverInfo.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/serverInfo.js b/src/lib/serverInfo.js index 7a4ef8f98..e0b6b7721 100644 --- a/src/lib/serverInfo.js +++ b/src/lib/serverInfo.js @@ -5,7 +5,6 @@ export const ALWAYS_ALLOWED_ROUTES = [ 'jobs', 'deployments', 'webhooks', - 'config', 'web-deployment', 'Overview', 'Web Deployment', From 4fcab92b2c384ac54143597ef734cc7b3dfe144b Mon Sep 17 00:00:00 2001 From: charles-ramos Date: Tue, 4 Aug 2026 12:35:38 -0300 Subject: [PATCH 4/4] enabling cloud code section --- src/components/Sidebar/B4aSidebar.react.js | 5 ++++- src/dashboard/DashboardView.react.js | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/Sidebar/B4aSidebar.react.js b/src/components/Sidebar/B4aSidebar.react.js index b915164b7..2878b3c42 100644 --- a/src/components/Sidebar/B4aSidebar.react.js +++ b/src/components/Sidebar/B4aSidebar.react.js @@ -139,7 +139,7 @@ const B4aSidebar = ({ } return (
- {subsections.map(({ name, link, badge, children: groupChildren }) => { + {subsections.map(({ name, link, badge, gated, children: groupChildren }) => { if (groupChildren) { const isGroupActive = subsection === name || groupChildren.some(c => c.name === subsection); const groupLink = link.startsWith('/') ? prefix + link : link; @@ -189,6 +189,8 @@ const B4aSidebar = ({ } const active = subsection === name; + // Opt-in: only items flagged `gated` are locked when the app is unreachable. + const itemDisabled = gated ? !canAccess(currentApp.serverInfo, link.replace(/^\//, '')) : false; link = link.startsWith('/') ? prefix + link : link; return ( {active ? children : null} diff --git a/src/dashboard/DashboardView.react.js b/src/dashboard/DashboardView.react.js index cad4cb0cb..e1aea4d9a 100644 --- a/src/dashboard/DashboardView.react.js +++ b/src/dashboard/DashboardView.react.js @@ -161,7 +161,8 @@ export default class DashboardView extends React.Component { cloudCodeSubSections.push({ name: 'Config', - link: '/config' + link: '/config', + gated: true }); // if (!isLocked && features.logs && Object.keys(features.logs).some(key => features.logs[key])) {