diff --git a/lib/private/Installer.php b/lib/private/Installer.php index cc80423b7dc714d1d32e132271284971eaf4a63d..643590ae22e6af45306159bcf50fb036da7b7917 100644 --- a/lib/private/Installer.php +++ b/lib/private/Installer.php @@ -493,11 +493,6 @@ class Installer { */ public static function removeApp($appId) { - $appData = OC_App::getAppInfo($appId); - if (!is_null($appData)) { - OC_App::executeRepairSteps($appId, $appData['repair-steps']['uninstall']); - } - if(Installer::isDownloaded( $appId )) { $appDir=OC_App::getInstallPath() . '/' . $appId; OC_Helper::rmdirr($appDir); diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index 42bb441228f9cf1412776490f0bf5bbcd84d3e95..41b1b79e4f6bd556668ef7c5e7ffff4b5c1338f5 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -370,9 +370,19 @@ class OC_App { $app = self::getInternalAppIdByOcs($app); } - self::$enabledAppsCache = array(); // flush - // check if app is a shipped app or not. if not delete + // flush + self::$enabledAppsCache = array(); + + // run uninstall steps + $appData = OC_App::getAppInfo($app); + if (!is_null($appData)) { + OC_App::executeRepairSteps($app, $appData['repair-steps']['uninstall']); + } + + // emit disable hook - needed anymore ? \OC_Hook::emit('OC_App', 'pre_disable', array('app' => $app)); + + // finally disable it $appManager = \OC::$server->getAppManager(); $appManager->disableApp($app); }