From 80cafe29a8e3a9624887632bc2b24f33c6b03ef8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu>
Date: Tue, 24 Feb 2015 12:51:55 +0100
Subject: [PATCH] 3rd-party apps are only disabled in case core is upgraded

---
 lib/private/updater.php | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/lib/private/updater.php b/lib/private/updater.php
index 0853696fe2..5b505d7ded 100644
--- a/lib/private/updater.php
+++ b/lib/private/updater.php
@@ -358,6 +358,7 @@ class Updater extends BasicEmitter {
 	 * party apps installed.
 	 */
 	private function checkAppsRequirements() {
+		$isCoreUpgrade = $this->isCodeUpgrade();
 		$apps = OC_App::getEnabledApps();
 		$version = OC_Util::getVersion();
 		foreach ($apps as $app) {
@@ -367,6 +368,10 @@ class Updater extends BasicEmitter {
 				OC_App::disable($app);
 				$this->emit('\OC\Updater', 'incompatibleAppDisabled', array($app));
 			}
+			// no need to disable any app in case this is a non-core upgrade
+			if (!$isCoreUpgrade) {
+				continue;
+			}
 			// shipped apps will remain enabled
 			if (OC_App::isShipped($app)) {
 				continue;
@@ -381,5 +386,14 @@ class Updater extends BasicEmitter {
 			$this->emit('\OC\Updater', 'thirdPartyAppDisabled', array($app));
 		}
 	}
+
+	private function isCodeUpgrade() {
+		$installedVersion = $this->config->getSystemValue('version', '0.0.0');
+		$currentVersion = implode('.', OC_Util::getVersion());
+		if (version_compare($currentVersion, $installedVersion, '>')) {
+			return true;
+		}
+		return false;
+	}
 }
 
-- 
GitLab