From 709b0a1ddc5a4ec518a1c53c2a6397cbb29bf45c Mon Sep 17 00:00:00 2001
From: Tom Needham <needham.thomas@gmail.com>
Date: Thu, 10 May 2012 23:06:53 +0000
Subject: [PATCH] Check if app is enabled before exporting its data

---
 lib/migrate.php | 54 +++++++++++++++++++++++++------------------------
 1 file changed, 28 insertions(+), 26 deletions(-)

diff --git a/lib/migrate.php b/lib/migrate.php
index 99926171b77..8fb949d66e1 100644
--- a/lib/migrate.php
+++ b/lib/migrate.php
@@ -406,36 +406,38 @@ class OC_Migrate{
 
 		// Foreach provider
 		foreach( self::$providers as $provider ){
-			$success = true;
-			// Does this app use the database?
-			if( file_exists( OC::$SERVERROOT.'/apps/'.$provider->getID().'/appinfo/database.xml' ) ){
-				// Create some app tables
-				$tables = self::createAppTables( $provider->getID() );
-				if( is_array( $tables ) ){
-					// Save the table names
-					foreach($tables as $table){
-						$return['apps'][$provider->getID()]['tables'][] = $table;
+			// Check if the app is enabled
+			if( OC_App::isEnabled( $provider->getID() ) ){
+				$success = true;
+				// Does this app use the database?
+				if( file_exists( OC::$SERVERROOT.'/apps/'.$provider->getID().'/appinfo/database.xml' ) ){
+					// Create some app tables
+					$tables = self::createAppTables( $provider->getID() );
+					if( is_array( $tables ) ){
+						// Save the table names
+						foreach($tables as $table){
+							$return['apps'][$provider->getID()]['tables'][] = $table;
+						}
+					} else {
+						// It failed to create the tables
+						$success = false;
 					}
+				}
+	
+				// Run the export function?
+				if( $success ){
+					// Set the provider properties
+					$provider->setData( self::$uid, self::$content );
+					$return['apps'][$provider->getID()]['success'] = $provider->export();
 				} else {
-					// It failed to create the tables
-					$success = false;
+					$return['apps'][$provider->getID()]['success'] = false;
+					$return['apps'][$provider->getID()]['message'] = 'failed to create the app tables';
 				}
+	
+				// Now add some app info the the return array
+				$appinfo = OC_App::getAppInfo( $provider->getID() );
+				$return['apps'][$provider->getID()]['version'] = OC_App::getAppVersion($provider->getID());
 			}
-
-			// Run the export function?
-			if( $success ){
-				// Set the provider properties
-				$provider->setData( self::$uid, self::$content );
-				$return['apps'][$provider->getID()]['success'] = $provider->export();
-			} else {
-				$return['apps'][$provider->getID()]['success'] = false;
-				$return['apps'][$provider->getID()]['message'] = 'failed to create the app tables';
-			}
-
-			// Now add some app info the the return array
-			$appinfo = OC_App::getAppInfo( $provider->getID() );
-			$return['apps'][$provider->getID()]['version'] = OC_App::getAppVersion($provider->getID());
-
 		}
 
 		return $return;
-- 
GitLab