mirror of
https://github.com/nextcloud/server.git
synced 2026-04-26 00:27:49 -04:00
fix(files_versions): Do not assume source exist when migrating versions to new storage
Signed-off-by: Louis Chmn <louis@chmn.me>
This commit is contained in:
parent
cdda18efaa
commit
824be1fe3c
1 changed files with 17 additions and 1 deletions
|
|
@ -27,6 +27,7 @@ use OCP\Files\Node;
|
|||
use OCP\Files\Storage\IStorage;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserSession;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
/** @template-implements IEventListener<Event> */
|
||||
class VersionStorageMoveListener implements IEventListener {
|
||||
|
|
@ -36,6 +37,7 @@ class VersionStorageMoveListener implements IEventListener {
|
|||
public function __construct(
|
||||
private IVersionManager $versionManager,
|
||||
private IUserSession $userSession,
|
||||
private LoggerInterface $logger,
|
||||
) {
|
||||
}
|
||||
|
||||
|
|
@ -98,7 +100,21 @@ class VersionStorageMoveListener implements IEventListener {
|
|||
$source = $this->movedNodes[$target->getId()];
|
||||
}
|
||||
|
||||
/** @var File $source */
|
||||
if ($source === null) {
|
||||
$this->logger->warning(
|
||||
'Failed to retrieve source file during version move/copy.',
|
||||
[
|
||||
'eventClass' => get_class($event),
|
||||
'targetPath' => $target->getPath(),
|
||||
'targetId' => $target->getId(),
|
||||
'movedNodesKeys' => array_keys($this->movedNodes),
|
||||
'sourceBackendClass' => get_class($sourceBackend),
|
||||
'targetBackendClass' => get_class($targetBackend),
|
||||
]
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
$this->handleMoveOrCopy($event, $user, $source, $target, $sourceBackend, $targetBackend);
|
||||
} elseif ($target instanceof Folder) {
|
||||
/** @var Folder $source */
|
||||
|
|
|
|||
Loading…
Reference in a new issue