From c8a48272c5b0d09749bdbd226e334d067c61a280 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Thu, 13 Nov 2014 13:34:11 +0100 Subject: [PATCH] Add repair steps for legacy config files Remove all ports from the trusted domains --- lib/private/repair.php | 3 ++- lib/repair/repairconfig.php | 54 +++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 lib/repair/repairconfig.php diff --git a/lib/private/repair.php b/lib/private/repair.php index 6cdcc31fbcf..98bf37f8862 100644 --- a/lib/private/repair.php +++ b/lib/private/repair.php @@ -83,7 +83,8 @@ class Repair extends BasicEmitter { $steps = array( new \OC\Repair\InnoDB(), new \OC\Repair\Collation(\OC::$server->getConfig(), \OC_DB::getConnection()), - new \OC\Repair\SearchLuceneTables() + new \OC\Repair\SearchLuceneTables(), + new \OC\Repair\RepairConfig() ); //There is no need to delete all previews on every single update diff --git a/lib/repair/repairconfig.php b/lib/repair/repairconfig.php new file mode 100644 index 00000000000..22fa99db0cf --- /dev/null +++ b/lib/repair/repairconfig.php @@ -0,0 +1,54 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Repair; + +use OC\Hooks\BasicEmitter; +use OC\RepairStep; +use Sabre\DAV\Exception; + +/** + * Class RepairConfig + * + * @package OC\Repair + */ +class RepairConfig extends BasicEmitter implements RepairStep { + + /** + * @return string + */ + public function getName() { + return 'Repair config'; + } + + /** + * Updates the configuration after running an update + */ + public function run() { + $this->removePortsFromTrustedDomains(); + } + + /** + * Remove ports from existing trusted domains in config.php + */ + private function removePortsFromTrustedDomains() { + $trustedDomains = \OC::$server->getConfig()->getSystemValue('trusted_domains', array()); + $newTrustedDomains = array(); + foreach($trustedDomains as $domain) { + $pos = strrpos($domain, ':'); + if ($pos !== false) { + $port = substr($domain, $pos + 1); + if (is_numeric($port)) { + $domain = substr($domain, 0, $pos); + } + } + $newTrustedDomains[] = $domain; + } + \OC::$server->getConfig()->setSystemValue('trusted_domains', $newTrustedDomains); + } +} \ No newline at end of file -- 2.39.5