]> source.dussan.org Git - nextcloud-server.git/commitdiff
Prevent loadApps on upgrade
authorVincent Petry <pvince81@owncloud.com>
Tue, 10 Jun 2014 16:01:07 +0000 (18:01 +0200)
committerVincent Petry <pvince81@owncloud.com>
Wed, 18 Jun 2014 09:10:07 +0000 (11:10 +0200)
Moved OC::needUpgrade() to OCP\Util::needUpgrade() to make it accessible
form the router.
Moved maintenance + upgrade check to the router.

lib/base.php
lib/private/route/router.php
lib/private/util.php
lib/public/util.php

index 7bde1dbeb8f9b563ad7ab062f4bcb95826a84995..ca2e49bed644932a59bbde9073180ce5ae1d6e19 100644 (file)
@@ -262,15 +262,10 @@ class OC {
         * check if the instance needs to preform an upgrade
         *
         * @return bool
+        * @deprecated use \OCP\Util::needUpgrade instead
         */
        public static function needUpgrade() {
-               if (OC_Config::getValue('installed', false)) {
-                       $installedVersion = OC_Config::getValue('version', '0.0.0');
-                       $currentVersion = implode('.', OC_Util::getVersion());
-                       return version_compare($currentVersion, $installedVersion, '>');
-               } else {
-                       return false;
-               }
+               return \OCP\Util::needUpgrade();
        }
 
        /**
@@ -279,7 +274,7 @@ class OC {
         * @return bool|void
         */
        public static function checkUpgrade($showTemplate = true) {
-               if (self::needUpgrade()) {
+               if (\OCP\Util::needUpgrade()) {
                        if ($showTemplate && !OC_Config::getValue('maintenance', false)) {
                                $version = OC_Util::getVersion();
                                $oldTheme = OC_Config::getValue('theme');
@@ -595,7 +590,7 @@ class OC {
         * register hooks for the cache
         */
        public static function registerCacheHooks() {
-               if (OC_Config::getValue('installed', false) && !self::needUpgrade()) { //don't try to do this before we are properly setup
+               if (OC_Config::getValue('installed', false) && !\OCP\Util::needUpgrade()) { //don't try to do this before we are properly setup
                        \OCP\BackgroundJob::registerJob('OC\Cache\FileGlobalGC');
 
                        // NOTE: This will be replaced to use OCP
@@ -608,7 +603,7 @@ class OC {
         * register hooks for the cache
         */
        public static function registerLogRotate() {
-               if (OC_Config::getValue('installed', false) && OC_Config::getValue('log_rotate_size', false) && !self::needUpgrade()) {
+               if (OC_Config::getValue('installed', false) && OC_Config::getValue('log_rotate_size', false) && !\OCP\Util::needUpgrade()) {
                        //don't try to do this before we are properly setup
                        //use custom logfile path if defined, otherwise use default of owncloud.log in data directory
                        \OCP\BackgroundJob::registerJob('OC\Log\Rotate', OC_Config::getValue('logfile', OC_Config::getValue("datadirectory", OC::$SERVERROOT . '/data') . '/owncloud.log'));
@@ -695,10 +690,9 @@ class OC {
 
                if (!self::$CLI and (!isset($_GET["logout"]) or ($_GET["logout"] !== 'true'))) {
                        try {
-                               if (!OC_Config::getValue('maintenance', false) && !self::needUpgrade()) {
+                               if (!OC_Config::getValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
                                        OC_App::loadApps(array('authentication'));
                                        OC_App::loadApps(array('filesystem', 'logging'));
-                                       OC_App::loadApps();
                                }
                                self::checkSingleUserMode();
                                OC::$server->getRouter()->match(OC_Request::getRawPathInfo());
index e7c8ad9ebdd45fa3bb34b0320a8a4f6068e84795..f3a4bc5f3e4a5819af63b87121bb2a8a88951698 100644 (file)
@@ -192,7 +192,9 @@ class Router implements IRouter {
                        $this->loadRoutes($app);
                } else if (substr($url, 0, 6) === '/core/' or substr($url, 0, 10) === '/settings/') {
                        \OC::$REQUESTEDAPP = $url;
-                       \OC_App::loadApps();
+                       if (!\OC_Config::getValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
+                               \OC_App::loadApps();
+                       }
                        $this->loadRoutes('core');
                } else {
                        $this->loadRoutes();
index dfdddd0e3ab443fbd2f981d5999884b970116793..94005daef61096cc68ee0da9d02360007cbe9fa3 100755 (executable)
@@ -329,7 +329,7 @@ class OC_Util {
                $errors = array();
                $CONFIG_DATADIRECTORY = OC_Config::getValue('datadirectory', OC::$SERVERROOT . '/data');
 
-               if (!\OC::needUpgrade() && OC_Config::getValue('installed', false)) {
+               if (!self::needUpgrade() && OC_Config::getValue('installed', false)) {
                        // this check needs to be done every time
                        $errors = self::checkDataDirectoryValidity($CONFIG_DATADIRECTORY);
                }
@@ -1356,4 +1356,19 @@ class OC_Util {
                }
                return true;
        }
+
+       /**
+        * Check whether the instance needs to preform an upgrade
+        *
+        * @return bool
+        */
+       public static function needUpgrade() {
+               if (OC_Config::getValue('installed', false)) {
+                       $installedVersion = OC_Config::getValue('version', '0.0.0');
+                       $currentVersion = implode('.', OC_Util::getVersion());
+                       return version_compare($currentVersion, $installedVersion, '>');
+               } else {
+                       return false;
+               }
+       }
 }
index d1faec3997f8e901acd5d71519455e7ba4afcb5a..8f4691eeade4750ea85a0cafb059b726d6bb20a7 100644 (file)
@@ -516,4 +516,13 @@ class Util {
        public static function isPublicLinkPasswordRequired() {
                return \OC_Util::isPublicLinkPasswordRequired();
        }
+
+       /**
+        * Checks whether the current version needs upgrade.
+        *
+        * @return bool true if upgrade is needed, false otherwise
+        */
+       public static function needUpgrade() {
+               return \OC_Util::needUpgrade();
+       }
 }