]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add repair steps for legacy config files
authorLukas Reschke <lukas@owncloud.com>
Thu, 13 Nov 2014 12:34:11 +0000 (13:34 +0100)
committerLukas Reschke <lukas@owncloud.com>
Thu, 13 Nov 2014 12:34:11 +0000 (13:34 +0100)
Remove all ports from the trusted domains

lib/private/repair.php
lib/repair/repairconfig.php [new file with mode: 0644]

index 6cdcc31fbcfaaa883f61eb1e2f01e5af249014c7..98bf37f88621f3380efd54f6c0d50b17fb6430f5 100644 (file)
@@ -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 (file)
index 0000000..22fa99d
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
+ * 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