From d7b928fd9b688079f175e596f06f16199dfd0309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Wed, 23 May 2018 19:51:22 +0200 Subject: [PATCH] Add install/remove to the new controller methods MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- settings/Controller/AppSettingsController.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/settings/Controller/AppSettingsController.php b/settings/Controller/AppSettingsController.php index 8e72b5ab2d..5aaee1871d 100644 --- a/settings/Controller/AppSettingsController.php +++ b/settings/Controller/AppSettingsController.php @@ -521,6 +521,18 @@ class AppSettingsController extends Controller { foreach ($appIds as $appId) { $appId = OC_App::cleanAppId($appId); + + // Check if app is already downloaded + /** @var Installer $installer */ + $installer = \OC::$server->query(Installer::class); + $isDownloaded = $installer->isDownloaded($appId); + + if(!$isDownloaded) { + $installer->downloadApp($appId); + } + + $installer->installApp($appId); + if (count($groups) > 0) { $this->appManager->enableAppForGroups($appId, $this->getGroupList($groups)); } else { @@ -575,7 +587,9 @@ class AppSettingsController extends Controller { */ public function uninstallApp(string $appId): JSONResponse { $appId = OC_App::cleanAppId($appId); - $result = OC_App::removeApp($appId); + /** @var Installer $installer */ + $installer = \OC::$server->query(\OC\Installer::class); + $result = $installer->removeApp($appId); if($result !== false) { // FIXME: Clear the cache - move that into some sane helper method \OC::$server->getMemCacheFactory()->createDistributed('settings')->remove('listApps-0');