From ae5864e1388bcc9c236f96832b5943e4c24f3552 Mon Sep 17 00:00:00 2001 From: "Misha M.-Kupriyanov" Date: Thu, 10 Apr 2025 16:29:56 +0200 Subject: [PATCH] IONOS(base): add redirect for upgrade page if needed in case you dont want to display upgrade button to users you can redirect them to other location (e.g. dedicated maintenance page) set desired location via ./occ config:system:set --type string --value /maintenance -- upgrade.redirect_upgradepage_to_location Signed-off-by: Misha M.-Kupriyanov --- lib/base.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/base.php b/lib/base.php index 51279c8b70d6d..3e003be7f551e 100644 --- a/lib/base.php +++ b/lib/base.php @@ -257,6 +257,8 @@ public static function checkMaintenanceMode(\OC\SystemConfig $systemConfig): voi private static function printUpgradePage(\OC\SystemConfig $systemConfig): void { $cliUpgradeLink = $systemConfig->getValue('upgrade.cli-upgrade-link', ''); $disableWebUpdater = $systemConfig->getValue('upgrade.disable-web', false); + $redirectUpgradePage = $systemConfig->getValue('upgrade.redirect_upgradepage_to_location', null); + $tooBig = false; if (!$disableWebUpdater) { $apps = Server::get(\OCP\App\IAppManager::class); @@ -292,6 +294,13 @@ private static function printUpgradePage(\OC\SystemConfig $systemConfig): void { $ignoreTooBigWarning = isset($_GET['IKnowThatThisIsABigInstanceAndTheUpdateRequestCouldRunIntoATimeoutAndHowToRestoreABackup']) && $_GET['IKnowThatThisIsABigInstanceAndTheUpdateRequestCouldRunIntoATimeoutAndHowToRestoreABackup'] === 'IAmSuperSureToDoThis'; + if ($redirectUpgradePage !== null) { + http_response_code(302); + header('X-Nextcloud-needsDbUpgrade: 1'); + header("Location: ${redirectUpgradePage}#" . time()); + die(); + } + if ($disableWebUpdater || ($tooBig && !$ignoreTooBigWarning)) { // send http status 503 http_response_code(503);