diff --git a/services/web/app/src/Features/User/UserPagesController.js b/services/web/app/src/Features/User/UserPagesController.js index 4a86c0395f..873110c0dc 100644 --- a/services/web/app/src/Features/User/UserPagesController.js +++ b/services/web/app/src/Features/User/UserPagesController.js @@ -18,6 +18,10 @@ async function settingsPage(req, res) { if (ssoError) { delete req.session.ssoError } + const ssoErrorMessage = req.session.ssoErrorMessage + if (ssoErrorMessage) { + delete req.session.ssoErrorMessage + } // Institution SSO let institutionLinked = _.get(req.session, ['saml', 'linked']) if (institutionLinked) { @@ -97,7 +101,7 @@ async function settingsPage(req, res) { reconfirmedViaSAML, reconfirmationRemoveEmail, samlBeta: req.session.samlBeta, - ssoError: ssoError, + ssoErrorMessage, thirdPartyIds: UserPagesController._restructureThirdPartyIds(user), }) } else { diff --git a/services/web/app/views/project/list/notifications.pug b/services/web/app/views/project/list/notifications.pug index 28a1ab2d7f..a8672d9c36 100644 --- a/services/web/app/views/project/list/notifications.pug +++ b/services/web/app/views/project/list/notifications.pug @@ -126,7 +126,7 @@ include ../../_mixins/reconfirm_affiliation .notification-body if user.features.dropbox | !{translate("dropbox_unlinked_premium_feature", {}, ['strong'])} - | !{translate("can_now_relink_dropbox", {}, [{name: 'a', attrs: {href: '/user/settings#dropboxSettings' }}])} + | !{translate("can_now_relink_dropbox", {}, [{name: 'a', attrs: {href: '/user/settings#project-sync' }}])} else | !{translate("dropbox_unlinked_premium_feature", {}, ['strong'])} | !{translate("confirm_affiliation_to_relink_dropbox")} diff --git a/services/web/app/views/user/settings-react.pug b/services/web/app/views/user/settings-react.pug index 2775dfb50c..e5db2fae3c 100644 --- a/services/web/app/views/user/settings-react.pug +++ b/services/web/app/views/user/settings-react.pug @@ -14,7 +14,7 @@ block append meta meta(name="ol-reconfirmedViaSAML", content=reconfirmedViaSAML) meta(name="ol-reconfirmationRemoveEmail", content=reconfirmationRemoveEmail) meta(name="ol-samlBeta", content=samlBeta) - meta(name="ol-ssoError", content=ssoError) + meta(name="ol-ssoErrorMessage", content=ssoErrorMessage) meta(name="ol-thirdPartyIds", data-type="json", content=thirdPartyIds || {}) meta(name="ol-passwordStrengthOptions", data-type="json", content=settings.passwordStrengthOptions || {}) meta(name="ol-isExternalAuthenticationSystemUsed" data-type="boolean" content=externalAuthenticationSystemUsed()) diff --git a/services/web/frontend/js/features/settings/components/linking-section.tsx b/services/web/frontend/js/features/settings/components/linking-section.tsx index 7807e0d726..7a6073c7eb 100644 --- a/services/web/frontend/js/features/settings/components/linking-section.tsx +++ b/services/web/frontend/js/features/settings/components/linking-section.tsx @@ -1,4 +1,5 @@ import { useState } from 'react' +import { Alert } from 'react-bootstrap' import { useTranslation } from 'react-i18next' import importOverleafModules from '../../../../macros/import-overleaf-module.macro' import { useSSOContext, SSOSubscription } from '../context/sso-context' @@ -8,7 +9,7 @@ import getMeta from '../../../utils/meta' function LinkingSection() { const { t } = useTranslation() const { subscriptions } = useSSOContext() - + const ssoErrorMessage = getMeta('ol-ssoErrorMessage') as string const [integrationLinkingWidgets] = useState( () => getMeta('integrationLinkingWidgets') || @@ -77,6 +78,11 @@ function LinkingSection() {