diff --git a/packages/editor-ui/src/plugins/i18n/locales/en.json b/packages/editor-ui/src/plugins/i18n/locales/en.json index c686503ff3..f210affad8 100644 --- a/packages/editor-ui/src/plugins/i18n/locales/en.json +++ b/packages/editor-ui/src/plugins/i18n/locales/en.json @@ -1736,6 +1736,9 @@ "settings.sso.settings.ips.help": "Add the raw Metadata XML provided by your Identity Provider", "settings.sso.settings.test": "Test settings", "settings.sso.settings.save": "Save settings", + "settings.sso.actionBox.title": "Available on Enterprise plan", + "settings.sso.actionBox.description": "Use Single Sign On to consolidate authentication into a single platform to improve security and agility.", + "settings.sso.actionBox.buttonText": "See plans", "sso.login.divider": "or", "sso.login.button": "Continue with SSO" } diff --git a/packages/editor-ui/src/router.ts b/packages/editor-ui/src/router.ts index 937cb003a8..7a548d3768 100644 --- a/packages/editor-ui/src/router.ts +++ b/packages/editor-ui/src/router.ts @@ -578,12 +578,7 @@ export const routes = [ deny: { shouldDeny: () => { const settingsStore = useSettingsStore(); - const ssoStore = useSSOStore(); - return ( - !ssoStore.isEnterpriseSamlEnabled || - settingsStore.isCloudDeployment || - settingsStore.isDesktopDeployment - ); + return settingsStore.isCloudDeployment || settingsStore.isDesktopDeployment; }, }, }, diff --git a/packages/editor-ui/src/views/SettingsSso.vue b/packages/editor-ui/src/views/SettingsSso.vue index 280e38cae9..3e1c516291 100644 --- a/packages/editor-ui/src/views/SettingsSso.vue +++ b/packages/editor-ui/src/views/SettingsSso.vue @@ -2,10 +2,14 @@ import { computed, ref, onBeforeMount } from 'vue'; import { Notification } from 'element-ui'; import { useSSOStore } from '@/stores/sso'; -import { i18n as locale } from '@/plugins/i18n'; +import { useUsageStore } from '@/stores/usage'; +import { useUIStore } from '@/stores/ui'; +import { BaseTextKey, i18n as locale } from '@/plugins/i18n'; import CopyInput from '@/components/CopyInput.vue'; const ssoStore = useSSOStore(); +const usageStore = useUsageStore(); +const uiStore = useUIStore(); const ssoActivatedLabel = computed(() => ssoStore.isSamlLoginEnabled @@ -51,7 +55,23 @@ const onTest = async () => { } }; +const goToUpgrade = () => { + const linkUrlTranslationKey = uiStore.contextBasedTranslationKeys.upgradeLinkUrl as BaseTextKey; + let linkUrl = locale.baseText(linkUrlTranslationKey); + + if (linkUrlTranslationKey.endsWith('.upgradeLinkUrl')) { + linkUrl = `${usageStore.viewPlansUrl}&source=sso`; + } else if (linkUrlTranslationKey.endsWith('.desktop')) { + linkUrl = `${linkUrl}&utm_campaign=upgrade-sso`; + } + + window.open(linkUrl, '_blank'); +}; + onBeforeMount(async () => { + if (!ssoStore.isEnterpriseSamlEnabled) { + return; + } try { await getSamlConfig(); } catch (error) { @@ -69,7 +89,7 @@ onBeforeMount(async () => { {{ locale.baseText('settings.sso.title') }}
{{ locale.baseText('settings.sso.subtitle') }} - + @@ -171,4 +204,8 @@ onBeforeMount(async () => { color: var(--color-text-base); } } + +.actionBox { + margin: var(--spacing-2xl) 0 0; +}