From 71b493ec9d662a5de687c58d5c6640ce3b22d724 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 17 Apr 2024 11:44:24 +0200 Subject: [PATCH] Merge pull request #17898 from overleaf/tm-remove-twitter-login Remove twitter login code and uninstall passport-twitter GitOrigin-RevId: 928c877ef2a42d5881652cad7f9d563c7766fd36 --- package-lock.json | 83 ------------------- services/web/app/src/models/GroupPolicy.js | 2 +- .../web/frontend/extracted-translations.json | 1 - .../settings/components/linking-section.tsx | 5 -- .../components/linking/sso-widget.tsx | 9 -- .../stories/settings/helpers/linking.js | 6 -- services/web/locales/en.json | 1 - services/web/package.json | 1 - .../components/linking-section.test.tsx | 7 -- .../settings/context/sso-context.test.tsx | 5 -- 10 files changed, 1 insertion(+), 119 deletions(-) diff --git a/package-lock.json b/package-lock.json index b0e9a809a5..c3e3b397a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30932,23 +30932,6 @@ "node": ">= 0.4.0" } }, - "node_modules/passport-oauth1": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.2.0.tgz", - "integrity": "sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==", - "dependencies": { - "oauth": "0.9.x", - "passport-strategy": "1.x.x", - "utils-merge": "1.x.x" - }, - "engines": { - "node": ">= 0.4.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/jaredhanson" - } - }, "node_modules/passport-oauth2": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.6.1.tgz", @@ -30984,18 +30967,6 @@ "node": ">= 0.4.0" } }, - "node_modules/passport-twitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/passport-twitter/-/passport-twitter-1.0.4.tgz", - "integrity": "sha512-qvdauqCqCJJci82mJ9hZZQ6nAv7aSHV31svL8+9H7mRlDdXCdfU6AARQrmmJu3DRmv9fvIebM7zzxR7mVufN3A==", - "dependencies": { - "passport-oauth1": "1.x.x", - "xtraverse": "0.1.x" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/patch-package": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", @@ -40293,15 +40264,6 @@ "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" }, - "node_modules/xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", - "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0", - "engines": { - "node": ">=0.1" - } - }, "node_modules/xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", @@ -40339,17 +40301,6 @@ "node": ">=0.4" } }, - "node_modules/xtraverse": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/xtraverse/-/xtraverse-0.1.0.tgz", - "integrity": "sha512-MANQdlG2hl1nQobxz1Rv8hsS1RuBS0C1N6qTOupv+9vmfrReePdxhmB2ecYjvsp4stJ80HD7erjkoF1Hd/FK9A==", - "dependencies": { - "xmldom": "0.1.x" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -43668,7 +43619,6 @@ "passport-local": "^1.0.0", "passport-oauth2": "^1.5.0", "passport-orcid": "0.0.4", - "passport-twitter": "^1.0.4", "pug": "^3.0.1", "pug-runtime": "^3.0.1", "rate-limiter-flexible": "^2.4.1", @@ -52357,7 +52307,6 @@ "passport-local": "^1.0.0", "passport-oauth2": "^1.5.0", "passport-orcid": "0.0.4", - "passport-twitter": "^1.0.4", "pdfjs-dist213": "npm:pdfjs-dist@2.13.216", "pdfjs-dist401": "npm:pdfjs-dist@4.0.379", "pirates": "^4.0.1", @@ -71697,16 +71646,6 @@ "passport-strategy": "1.x.x" } }, - "passport-oauth1": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/passport-oauth1/-/passport-oauth1-1.2.0.tgz", - "integrity": "sha512-Sv2YWodC6jN12M/OXwmR4BIXeeIHjjbwYTQw4kS6tHK4zYzSEpxBgSJJnknBjICA5cj0ju3FSnG1XmHgIhYnLg==", - "requires": { - "oauth": "0.9.x", - "passport-strategy": "1.x.x", - "utils-merge": "1.x.x" - } - }, "passport-oauth2": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.6.1.tgz", @@ -71732,15 +71671,6 @@ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" }, - "passport-twitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/passport-twitter/-/passport-twitter-1.0.4.tgz", - "integrity": "sha512-qvdauqCqCJJci82mJ9hZZQ6nAv7aSHV31svL8+9H7mRlDdXCdfU6AARQrmmJu3DRmv9fvIebM7zzxR7mVufN3A==", - "requires": { - "passport-oauth1": "1.x.x", - "xtraverse": "0.1.x" - } - }, "patch-package": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", @@ -78647,11 +78577,6 @@ "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" }, - "xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" - }, "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", @@ -78680,14 +78605,6 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, - "xtraverse": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/xtraverse/-/xtraverse-0.1.0.tgz", - "integrity": "sha512-MANQdlG2hl1nQobxz1Rv8hsS1RuBS0C1N6qTOupv+9vmfrReePdxhmB2ecYjvsp4stJ80HD7erjkoF1Hd/FK9A==", - "requires": { - "xmldom": "0.1.x" - } - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/services/web/app/src/models/GroupPolicy.js b/services/web/app/src/models/GroupPolicy.js index 3251ec325f..f421374993 100644 --- a/services/web/app/src/models/GroupPolicy.js +++ b/services/web/app/src/models/GroupPolicy.js @@ -19,7 +19,7 @@ const GroupPolicySchema = new Schema( // User can't have a Google SSO account, nor can they link it to their account userCannotHaveGoogleSSO: Boolean, - // User can't have other third-party SSO (e.g. Twitter/ORCID/IEEE) active on their account, nor can they link it to their account + // User can't have other third-party SSO (e.g. ORCID/IEEE) active on their account, nor can they link it to their account userCannotHaveOtherThirdPartySSO: Boolean, }, { minimize: false } diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index a012df98cc..611d34136c 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -696,7 +696,6 @@ "login_count": "", "login_to_accept_invitation": "", "login_with_service": "", - "login_with_service_will_stop_working_soon": "", "logs_and_output_files": "", "looking_multiple_licenses": "", "looks_like_youre_at": "", 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 e12d49b881..c5de89de12 100644 --- a/services/web/frontend/js/features/settings/components/linking-section.tsx +++ b/services/web/frontend/js/features/settings/components/linking-section.tsx @@ -232,11 +232,6 @@ function SSOLinkingWidgetContainer({ service: subscription.provider.name, })}.` break - case 'twitter': - description = t('login_with_service_will_stop_working_soon', { - service: subscription.provider.name, - }) - break case 'orcid': description = t('oauth_orcid_description') break diff --git a/services/web/frontend/js/features/settings/components/linking/sso-widget.tsx b/services/web/frontend/js/features/settings/components/linking/sso-widget.tsx index e4f03fdfc3..551681de3e 100644 --- a/services/web/frontend/js/features/settings/components/linking/sso-widget.tsx +++ b/services/web/frontend/js/features/settings/components/linking/sso-widget.tsx @@ -7,20 +7,11 @@ import IEEELogo from '../../../../shared/svgs/ieee-logo' import GoogleLogo from '../../../../shared/svgs/google-logo' import OrcidLogo from '../../../../shared/svgs/orcid-logo' import LinkingStatus from './status' -import Icon from '../../../../shared/components/icon' const providerLogos: { readonly [p: string]: JSX.Element } = { collabratec: , google: , orcid: , - twitter: ( - - ), } type SSOLinkingWidgetProps = { diff --git a/services/web/frontend/stories/settings/helpers/linking.js b/services/web/frontend/stories/settings/helpers/linking.js index fd0d023356..c551c8360e 100644 --- a/services/web/frontend/stories/settings/helpers/linking.js +++ b/services/web/frontend/stories/settings/helpers/linking.js @@ -24,7 +24,6 @@ export function setDefaultMeta() { window.metaAttributesCache.set('ol-thirdPartyIds', { collabratec: 'collabratec-id', google: 'google-id', - twitter: 'twitter-id', }) window.metaAttributesCache.set('ol-oauthProviders', { @@ -50,11 +49,6 @@ export function setDefaultMeta() { name: 'ORCID', linkPath: '/auth/orcid', }, - twitter: { - hideWhenNotLinked: true, - name: 'Twitter', - linkPath: '/auth/twitter', - }, }) window.metaAttributesCache.delete('integrationLinkingWidgets') window.metaAttributesCache.delete('referenceLinkingWidgets') diff --git a/services/web/locales/en.json b/services/web/locales/en.json index b195a81f52..062f52ca91 100644 --- a/services/web/locales/en.json +++ b/services/web/locales/en.json @@ -1042,7 +1042,6 @@ "login_to_accept_invitation": "Log in to accept invitation", "login_to_overleaf": "Log in to Overleaf", "login_with_service": "Log in with __service__", - "login_with_service_will_stop_working_soon": "Login with __service__ will stop working soon. If you log in with __service__, please take a moment to set up another SSO provider or a password.", "logs_and_output_files": "Logs and output files", "longer_compile_timeout": "Longer <0>compile timeout", "looking_multiple_licenses": "Looking for multiple licenses?", diff --git a/services/web/package.json b/services/web/package.json index 5a8713124f..bbddfd9eea 100644 --- a/services/web/package.json +++ b/services/web/package.json @@ -147,7 +147,6 @@ "passport-local": "^1.0.0", "passport-oauth2": "^1.5.0", "passport-orcid": "0.0.4", - "passport-twitter": "^1.0.4", "pug": "^3.0.1", "pug-runtime": "^3.0.1", "rate-limiter-flexible": "^2.4.1", diff --git a/services/web/test/frontend/features/settings/components/linking-section.test.tsx b/services/web/test/frontend/features/settings/components/linking-section.test.tsx index b0e63ec6f4..759fd31760 100644 --- a/services/web/test/frontend/features/settings/components/linking-section.test.tsx +++ b/services/web/test/frontend/features/settings/components/linking-section.test.tsx @@ -34,11 +34,6 @@ const mockOauthProviders = { name: 'ORCID', linkPath: '/auth/orcid', }, - twitter: { - hideWhenNotLinked: true, - name: 'Twitter', - linkPath: '/auth/twitter', - }, } describe('', function () { @@ -89,8 +84,6 @@ describe('', function () { expect(helpLink.getAttribute('href')).to.equal('/blog/434') const linkButton = screen.getByRole('link', { name: 'Link' }) expect(linkButton.getAttribute('href')).to.equal('/auth/orcid?intent=link') - - expect(screen.queryByText('Twitter')).to.not.exist }) it('shows SSO error message', async function () { diff --git a/services/web/test/frontend/features/settings/context/sso-context.test.tsx b/services/web/test/frontend/features/settings/context/sso-context.test.tsx index f03d3dc547..4372ca3019 100644 --- a/services/web/test/frontend/features/settings/context/sso-context.test.tsx +++ b/services/web/test/frontend/features/settings/context/sso-context.test.tsx @@ -22,11 +22,6 @@ const mockOauthProviders = { name: 'ORCID', linkPath: '/auth/orcid', }, - twitter: { - hideWhenNotLinked: true, - name: 'Twitter', - linkPath: '/auth/twitter', - }, } describe('SSOContext', function () {