Add install/remove to the new controller methods

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2018-05-23 19:51:22 +02:00
parent eccc391bda
commit d7b928fd9b
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
1 changed files with 15 additions and 1 deletions

View File

@ -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');