diff --git a/frontend/src/pages/UnstractAdministrationPage.css b/frontend/src/pages/UnstractAdministrationPage.css new file mode 100644 index 0000000000..14a35ed755 --- /dev/null +++ b/frontend/src/pages/UnstractAdministrationPage.css @@ -0,0 +1,4 @@ +.administration-fallback { + padding: 24px; + text-align: center; +} diff --git a/frontend/src/pages/UnstractAdministrationPage.jsx b/frontend/src/pages/UnstractAdministrationPage.jsx new file mode 100644 index 0000000000..6fa07ea6aa --- /dev/null +++ b/frontend/src/pages/UnstractAdministrationPage.jsx @@ -0,0 +1,25 @@ +import "./UnstractAdministrationPage.css"; + +let UnstractAdministration; + +try { + UnstractAdministration = + require("../plugins/subscription-admin/components/UnstractAdministration.jsx").UnstractAdministration; +} catch (err) { + // NOSONAR + // Cloud-only feature, not available in OSS +} + +function UnstractAdministrationPage() { + if (!UnstractAdministration) { + return ( +
+

Administration Panel

+

This feature is only available in Unstract Cloud.

+
+ ); + } + return ; +} + +export { UnstractAdministrationPage }; diff --git a/frontend/src/routes/Router.jsx b/frontend/src/routes/Router.jsx index 104a3c52f4..533903975b 100644 --- a/frontend/src/routes/Router.jsx +++ b/frontend/src/routes/Router.jsx @@ -86,6 +86,15 @@ try { // Do nothing, Not-found Page will be triggered. } +let LlmWhispererCustomCheckoutPage; +try { + LlmWhispererCustomCheckoutPage = + require("../plugins/llm-whisperer/pages/LlmWhispererCustomCheckoutPage.jsx").LlmWhispererCustomCheckoutPage; +} catch (err) { + // NOSONAR + // Do nothing, Not-found Page will be triggered. +} + function Router() { const MainAppRoute = useMainAppRoutes(); return ( @@ -147,6 +156,12 @@ function Router() { element={} /> )} + {LlmWhispererCustomCheckoutPage && ( + } + /> + )} }> {MainAppRoute} {llmWhispererRouter && ( diff --git a/frontend/src/routes/useMainAppRoutes.js b/frontend/src/routes/useMainAppRoutes.js index b2c6a6919f..494f89d3ec 100644 --- a/frontend/src/routes/useMainAppRoutes.js +++ b/frontend/src/routes/useMainAppRoutes.js @@ -6,6 +6,7 @@ import { ToolsSettingsPage } from "../pages/ToolsSettingsPage.jsx"; import { SettingsPage } from "../pages/SettingsPage.jsx"; import { PlatformSettings } from "../components/settings/platform/PlatformSettings.jsx"; import { RequireAdmin } from "../components/helpers/auth/RequireAdmin.js"; +import { useSessionStore } from "../store/session-store"; import { UsersPage } from "../pages/UsersPage.jsx"; import { InviteEditUserPage } from "../pages/InviteEditUserPage.jsx"; import { DefaultTriad } from "../components/settings/default-triad/DefaultTriad.jsx"; @@ -22,6 +23,7 @@ import { OutputAnalyzerPage } from "../pages/OutputAnalyzerPage.jsx"; import { LogsPage } from "../pages/LogsPage.jsx"; import { deploymentTypes } from "../helpers/GetStaticData.js"; import ConnectorsPage from "../pages/ConnectorsPage.jsx"; +import { UnstractAdministrationPage } from "../pages/UnstractAdministrationPage.jsx"; let RequirePlatformAdmin; let PlatformAdminPage; @@ -98,6 +100,11 @@ try { } function useMainAppRoutes() { + const { sessionDetails } = useSessionStore(); + const isStaff = sessionDetails?.isStaff || sessionDetails?.is_staff; + const orgName = sessionDetails?.orgName; + const isOpenSource = orgName === "mock_org"; + const routes = ( <> }> @@ -117,6 +124,12 @@ function useMainAppRoutes() { } /> )} + {isStaff && !isOpenSource && ( + } + /> + )} } />