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