Skip to content

Commit 59c70f0

Browse files
authored
Merge pull request #39874 from nextcloud/backport/39786/stable26
2 parents 297938a + d3b126d commit 59c70f0

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

apps/files_versions/lib/Storage.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,21 @@ public static function expire($filename, $uid) {
913913
}
914914

915915
foreach ($toDelete as $key => $path) {
916+
// Make sure to cleanup version table relations as expire does not pass deleteVersion
917+
try {
918+
/** @var VersionsMapper $versionsMapper */
919+
$versionsMapper = \OC::$server->get(VersionsMapper::class);
920+
$file = \OC::$server->get(IRootFolder::class)->getUserFolder($uid)->get($filename);
921+
$pathparts = pathinfo($path);
922+
$timestamp = (int)substr($pathparts['extension'] ?? '', 1);
923+
$versionEntity = $versionsMapper->findVersionForFileId($file->getId(), $timestamp);
924+
if ($versionEntity->getLabel() !== '') {
925+
continue;
926+
}
927+
$versionsMapper->delete($versionEntity);
928+
} catch (DoesNotExistException $e) {
929+
}
930+
916931
\OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $path, 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]);
917932
self::deleteVersion($versionsFileview, $path);
918933
\OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $path, 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]);

0 commit comments

Comments
 (0)