Skip to content

Commit b0f4d19

Browse files
Merge pull request #29303 from nextcloud/backport/29259/stable20
[stable20] Fix app upgrade
2 parents 66c615a + d3dcde7 commit b0f4d19

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

lib/private/Updater.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,9 @@ private function doUpgrade($currentVersion, $installedVersion) {
268268
// upgrade appstore apps
269269
$this->upgradeAppStoreApps($appManager->getInstalledApps());
270270
$autoDisabledApps = $appManager->getAutoDisabledApps();
271-
$this->upgradeAppStoreApps($autoDisabledApps, true);
271+
if (!empty($autoDisabledApps)) {
272+
$this->upgradeAppStoreApps(array_keys($autoDisabledApps), $autoDisabledApps);
273+
}
272274

273275
// install new shipped apps on upgrade
274276
$errors = Installer::installShippedApps(true);
@@ -448,12 +450,12 @@ private function isCodeUpgrade() {
448450
}
449451

450452
/**
451-
* @param array $disabledApps
452-
* @param bool $reenable
453+
* @param array $apps
454+
* @param array $previousEnableStates
453455
* @throws \Exception
454456
*/
455-
private function upgradeAppStoreApps(array $disabledApps, $reenable = false) {
456-
foreach ($disabledApps as $app => $previousEnableSetting) {
457+
private function upgradeAppStoreApps(array $apps, array $previousEnableStates = []) {
458+
foreach ($apps as $app) {
457459
try {
458460
$this->emit('\OC\Updater', 'checkAppStoreAppBefore', [$app]);
459461
if ($this->installer->isUpdateAvailable($app)) {
@@ -462,10 +464,10 @@ private function upgradeAppStoreApps(array $disabledApps, $reenable = false) {
462464
}
463465
$this->emit('\OC\Updater', 'checkAppStoreApp', [$app]);
464466

465-
if ($reenable) {
467+
if (!empty($previousEnableStates)) {
466468
$ocApp = new \OC_App();
467-
if (!empty($previousEnableSetting)) {
468-
$ocApp->enable($app, $previousEnableSetting);
469+
if (!empty($previousEnableStates[$app])) {
470+
$ocApp->enable($app, $previousEnableStates[$app]);
469471
} else {
470472
$ocApp->enable($app);
471473
}

0 commit comments

Comments
 (0)