aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-06-10 18:01:07 +0200
committerVincent Petry <pvince81@owncloud.com>2014-06-18 11:10:07 +0200
commit799205488cf82312586f99185e13df6015caa2ff (patch)
treed8c6172b48d8cdabb16ef8b535a21c96b1ebc739
parentbaf46c74cda834bbdb4ecf4669587b92b56fe9a9 (diff)
downloadnextcloud-server-799205488cf82312586f99185e13df6015caa2ff.tar.gz
nextcloud-server-799205488cf82312586f99185e13df6015caa2ff.zip
Prevent loadApps on upgrade
Moved OC::needUpgrade() to OCP\Util::needUpgrade() to make it accessible form the router. Moved maintenance + upgrade check to the router.
-rw-r--r--lib/base.php18
-rw-r--r--lib/private/route/router.php4
-rwxr-xr-xlib/private/util.php17
-rw-r--r--lib/public/util.php9
4 files changed, 34 insertions, 14 deletions
diff --git a/lib/base.php b/lib/base.php
index 7bde1dbeb8f..ca2e49bed64 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -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());
diff --git a/lib/private/route/router.php b/lib/private/route/router.php
index e7c8ad9ebdd..f3a4bc5f3e4 100644
--- a/lib/private/route/router.php
+++ b/lib/private/route/router.php
@@ -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();
diff --git a/lib/private/util.php b/lib/private/util.php
index dfdddd0e3ab..94005daef61 100755
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -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;
+ }
+ }
}
diff --git a/lib/public/util.php b/lib/public/util.php
index d1faec3997f..8f4691eeade 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -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();
+ }
}