Fix generated avatars cachetags/v27.0.0rc1
@@ -160,13 +160,8 @@ class AvatarManager implements IAvatarManager { | |||
public function clearCachedAvatars() { | |||
$users = $this->config->getUsersForUserValue('avatar', 'generated', 'true'); | |||
foreach ($users as $userId) { | |||
try { | |||
$folder = $this->appData->getFolder($userId); | |||
$folder->delete(); | |||
} catch (NotFoundException $e) { | |||
$this->logger->debug("No cache for the user $userId. Ignoring..."); | |||
} | |||
$this->config->setUserValue($userId, 'avatar', 'generated', 'false'); | |||
// This also bumps the avatar version leading to cache invalidation in browsers | |||
$this->getAvatar($userId)->remove(); | |||
} | |||
} | |||
@@ -42,7 +42,7 @@ class ClearGeneratedAvatarCache implements IRepairStep { | |||
} | |||
public function getName(): string { | |||
return 'Clear every generated avatar on major updates'; | |||
return 'Clear every generated avatar'; | |||
} | |||
/** | |||
@@ -51,8 +51,9 @@ class ClearGeneratedAvatarCache implements IRepairStep { | |||
private function shouldRun(): bool { | |||
$versionFromBeforeUpdate = $this->config->getSystemValueString('version', '0.0.0.0'); | |||
// was added to 25.0.0.10 | |||
return version_compare($versionFromBeforeUpdate, '25.0.0.10', '<='); | |||
// This job only runs if the server was on a version lower than or equal to 27.0.0 before the upgrade. | |||
// To clear the avatar cache again, bump the version to the currently released version (and change the operator to <= if it's not the master branch) and wait for the next release. | |||
return version_compare($versionFromBeforeUpdate, '27.0.0', '<'); | |||
} | |||
public function run(IOutput $output): void { |
@@ -61,7 +61,7 @@ class ClearGeneratedAvatarCacheTest extends \Test\TestCase { | |||
['15.0.0.3', true], | |||
['13.0.5.2', true], | |||
['12.0.0.0', true], | |||
['26.0.0.1', false], | |||
['26.0.0.1', true], | |||
['15.0.0.2', true], | |||
['13.0.0.0', true], | |||
['27.0.0.5', false] |