summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/Installer.php5
-rw-r--r--lib/private/legacy/app.php14
2 files changed, 12 insertions, 7 deletions
diff --git a/lib/private/Installer.php b/lib/private/Installer.php
index cc80423b7dc..643590ae22e 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 42bb441228f..41b1b79e4f6 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);
}