From 941ce7be598564341f958d5ea4bce347fbaea17d Mon Sep 17 00:00:00 2001 From: Alaister Young Date: Wed, 1 Oct 2025 11:07:04 +0800 Subject: [PATCH] chore: disable org security tab (#39141) --- .../OrganizationSettingsLayout.tsx | 18 ++++++++++++------ apps/studio/pages/org/[slug]/security.tsx | 16 +++++++++++++--- .../enabled-features/enabled-features.json | 1 + .../enabled-features.schema.json | 4 ++++ 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/apps/studio/components/layouts/ProjectLayout/OrganizationSettingsLayout.tsx b/apps/studio/components/layouts/ProjectLayout/OrganizationSettingsLayout.tsx index d198aee651e..836ad3584ac 100644 --- a/apps/studio/components/layouts/ProjectLayout/OrganizationSettingsLayout.tsx +++ b/apps/studio/components/layouts/ProjectLayout/OrganizationSettingsLayout.tsx @@ -13,22 +13,28 @@ function OrganizationSettingsLayout({ children }: PropsWithChildren) { const fullCurrentPath = useCurrentPath() const [currentPath] = fullCurrentPath.split('#') - const showSsoSettings = useIsFeatureEnabled('organization:show_sso_settings') + const { + organizationShowSsoSettings: showSsoSettings, + organizationShowSecuritySettings: showSecuritySettings, + } = useIsFeatureEnabled(['organization:show_sso_settings', 'organization:show_security_settings']) const navMenuItems = [ { label: 'General', href: `/org/${slug}/general`, }, - { - label: 'Security', - href: `/org/${slug}/security`, - }, + ...(showSecuritySettings + ? [ + { + label: 'Security', + href: `/org/${slug}/security`, + }, + ] + : []), { label: 'OAuth Apps', href: `/org/${slug}/apps`, }, - ...(showSsoSettings ? [ { diff --git a/apps/studio/pages/org/[slug]/security.tsx b/apps/studio/pages/org/[slug]/security.tsx index 4948e3e1d34..07409724924 100644 --- a/apps/studio/pages/org/[slug]/security.tsx +++ b/apps/studio/pages/org/[slug]/security.tsx @@ -1,18 +1,28 @@ +import { useParams } from 'common' import { SecuritySettings } from 'components/interfaces/Organization/SecuritySettings/SecuritySettings' import DefaultLayout from 'components/layouts/DefaultLayout' import OrganizationLayout from 'components/layouts/OrganizationLayout' import OrganizationSettingsLayout from 'components/layouts/ProjectLayout/OrganizationSettingsLayout' +import { UnknownInterface } from 'components/ui/UnknownInterface' +import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import type { NextPageWithLayout } from 'types' -const OrgGeneralSettings: NextPageWithLayout = () => { +const OrgSecuritySettings: NextPageWithLayout = () => { + const { slug } = useParams() + const showSecuritySettings = useIsFeatureEnabled('organization:show_security_settings') + + if (!showSecuritySettings) { + return + } + return } -OrgGeneralSettings.getLayout = (page) => ( +OrgSecuritySettings.getLayout = (page) => ( {page} ) -export default OrgGeneralSettings +export default OrgSecuritySettings diff --git a/packages/common/enabled-features/enabled-features.json b/packages/common/enabled-features/enabled-features.json index 996dc0790ac..678d1ef7560 100644 --- a/packages/common/enabled-features/enabled-features.json +++ b/packages/common/enabled-features/enabled-features.json @@ -65,6 +65,7 @@ "logs:collections": true, "organization:show_sso_settings": true, + "organization:show_security_settings": true, "profile:show_email": true, "profile:show_information": true, diff --git a/packages/common/enabled-features/enabled-features.schema.json b/packages/common/enabled-features/enabled-features.schema.json index 21a69510b58..c0a812e7b50 100644 --- a/packages/common/enabled-features/enabled-features.schema.json +++ b/packages/common/enabled-features/enabled-features.schema.json @@ -229,6 +229,10 @@ "type": "boolean", "description": "Show the SSO settings tab in the organization settings page" }, + "organization:show_security_settings": { + "type": "boolean", + "description": "Show the security settings tab in the organization settings page" + }, "profile:show_email": { "type": "boolean",