diff options
author | John Molakvoæ <skjnldsv@protonmail.com> | 2022-10-22 12:49:11 +0200 |
---|---|---|
committer | John Molakvoæ <skjnldsv@protonmail.com> | 2022-10-28 12:23:02 +0200 |
commit | a8e8a89ade2e5fd1aed16905335fbb765fbdde67 (patch) | |
tree | c07a6170a0d038cc33382d8cefa0a459f6f17636 /core/src | |
parent | 3323b1ac0d92f8beaf96763fb7ef67d1ed05b6ec (diff) | |
download | nextcloud-server-a8e8a89ade2e5fd1aed16905335fbb765fbdde67.tar.gz nextcloud-server-a8e8a89ade2e5fd1aed16905335fbb765fbdde67.zip |
Only check unsupported browsers on user rendering
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/main.js | 5 | ||||
-rw-r--r-- | core/src/unsupported-browser-redirect.js | 26 | ||||
-rw-r--r-- | core/src/unsupported-browser.js | 2 | ||||
-rw-r--r-- | core/src/utils/RedirectUnsupportedBrowsers.js | 9 | ||||
-rw-r--r-- | core/src/views/UnsupportedBrowser.vue | 10 |
5 files changed, 41 insertions, 11 deletions
diff --git a/core/src/main.js b/core/src/main.js index a8abbe5ac02..ec23171b6ea 100644 --- a/core/src/main.js +++ b/core/src/main.js @@ -36,11 +36,6 @@ import './globals.js' import './jquery/index.js' import { initCore } from './init.js' import { registerAppsSlideToggle } from './OC/apps.js' -import { testSupportedBrowser } from './utils/RedirectUnsupportedBrowsers.js' - -if (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) { - testSupportedBrowser() -} window.addEventListener('DOMContentLoaded', function() { initCore() diff --git a/core/src/unsupported-browser-redirect.js b/core/src/unsupported-browser-redirect.js new file mode 100644 index 00000000000..5ea64221a04 --- /dev/null +++ b/core/src/unsupported-browser-redirect.js @@ -0,0 +1,26 @@ +/** + * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com> + * + * @author John Molakvoæ <skjnldsv@protonmail.com> + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +import { testSupportedBrowser } from './utils/RedirectUnsupportedBrowsers.js' + +if (!window.TESTING && !OC?.config?.no_unsupported_browser_warning) { + testSupportedBrowser() +} diff --git a/core/src/unsupported-browser.js b/core/src/unsupported-browser.js index 59b4154ec6b..a9b44b666fc 100644 --- a/core/src/unsupported-browser.js +++ b/core/src/unsupported-browser.js @@ -1,5 +1,5 @@ /** - * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com> + * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com> * * @author John Molakvoæ <skjnldsv@protonmail.com> * diff --git a/core/src/utils/RedirectUnsupportedBrowsers.js b/core/src/utils/RedirectUnsupportedBrowsers.js index dd6bb99b94d..04382722c2d 100644 --- a/core/src/utils/RedirectUnsupportedBrowsers.js +++ b/core/src/utils/RedirectUnsupportedBrowsers.js @@ -1,5 +1,5 @@ /** - * @copyright 2021 John Molakvoæ <skjnldsv@protonmail.com> + * @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com> * * @author John Molakvoæ <skjnldsv@protonmail.com> * @@ -19,8 +19,6 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -import { generateUrl } from '@nextcloud/router' - import { supportedBrowsersRegExp } from '../services/BrowsersListService.js' import browserStorage from '../services/BrowserStorageService.js' import logger from '../logger.js' @@ -49,6 +47,9 @@ export const testSupportedBrowser = function() { // If incompatible, NOT overridden AND NOT already on the warning page, // redirect to the unsupported warning page if (window.location.pathname.indexOf(redirectPath) === -1) { - window.location = generateUrl(redirectPath) + const redirectUrl = window.location.href.replace(window.location.origin, '') + const base64Param = Buffer.from(redirectUrl).toString('base64') + history.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`) + window.location.reload() } } diff --git a/core/src/views/UnsupportedBrowser.vue b/core/src/views/UnsupportedBrowser.vue index 86e24925c32..e46c64da24c 100644 --- a/core/src/views/UnsupportedBrowser.vue +++ b/core/src/views/UnsupportedBrowser.vue @@ -1,5 +1,5 @@ <!-- - - @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com> + - @copyright 2022 John Molakvoæ <skjnldsv@protonmail.com> - - @author John Molakvoæ <skjnldsv@protonmail.com> - @@ -136,6 +136,14 @@ export default { // Set the flag allowing this browser and redirect to home forceBrowsing() { browserStorage.setItem(browserStorageKey, true) + + // Redirect if there is the data + const urlParams = new URLSearchParams(window.location.search) + if (urlParams.has('redirect_url')) { + const redirectPath = Buffer.from(urlParams.get('redirect_url'), 'base64').toString() || '/' + window.location = redirectPath + return + } window.location = generateUrl('/') }, |