aboutsummaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@protonmail.com>2022-10-22 12:49:11 +0200
committerJohn Molakvoæ <skjnldsv@protonmail.com>2022-10-28 12:23:02 +0200
commita8e8a89ade2e5fd1aed16905335fbb765fbdde67 (patch)
treec07a6170a0d038cc33382d8cefa0a459f6f17636 /core/src
parent3323b1ac0d92f8beaf96763fb7ef67d1ed05b6ec (diff)
downloadnextcloud-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.js5
-rw-r--r--core/src/unsupported-browser-redirect.js26
-rw-r--r--core/src/unsupported-browser.js2
-rw-r--r--core/src/utils/RedirectUnsupportedBrowsers.js9
-rw-r--r--core/src/views/UnsupportedBrowser.vue10
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('/')
},