aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFerdinand Thiessen <opensource@fthiessen.de>2025-03-20 18:45:10 +0100
committerFerdinand Thiessen <opensource@fthiessen.de>2025-03-20 18:45:10 +0100
commit1dc4c73093a97ce3247f063aee551b5e21c87f17 (patch)
treeecc420bff84a8976aafae2e28aae2172a5633489
parent569b21fdfe659af70aa7f9c23e8def2f96a20c3c (diff)
downloadnextcloud-server-fix/files-versions-listeners.tar.gz
nextcloud-server-fix/files-versions-listeners.zip
fix(files_versions): only handle path updates when there is pathfix/files-versions-listeners
`getPathForNode` can fail with null for various reasons (e.g. no owner), in this cases we need to just skip the event handling. Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
-rw-r--r--apps/files_versions/lib/Listener/FileEventsListener.php18
1 files changed, 13 insertions, 5 deletions
diff --git a/apps/files_versions/lib/Listener/FileEventsListener.php b/apps/files_versions/lib/Listener/FileEventsListener.php
index 49150f4e726..d796f617558 100644
--- a/apps/files_versions/lib/Listener/FileEventsListener.php
+++ b/apps/files_versions/lib/Listener/FileEventsListener.php
@@ -323,11 +323,19 @@ class FileEventsListener implements IEventListener {
return;
}
- // if we rename a movable mount point, then the versions don't have
- // to be renamed
+ // if we rename a movable mount point, then the versions don't have to be renamed
$oldPath = $this->getPathForNode($source);
$newPath = $this->getPathForNode($target);
- $absOldPath = Filesystem::normalizePath('/' . \OC_User::getUser() . '/files' . $oldPath);
+ if ($oldPath === null || $newPath === null) {
+ return;
+ }
+
+ $user = \OC_User::getUser();
+ if ($user === false) {
+ return;
+ }
+
+ $absOldPath = Filesystem::normalizePath('/' . $user . '/files' . $oldPath);
$manager = Filesystem::getMountManager();
$mount = $manager->find($absOldPath);
$internalPath = $mount->getInternalPath($absOldPath);
@@ -335,8 +343,8 @@ class FileEventsListener implements IEventListener {
return;
}
- $view = new View(\OC_User::getUser() . '/files');
- if ($view->file_exists($newPath)) {
+ $view = new View($user . '/files');
+ if ($view->file_exists($newPath) === true) {
Storage::store($newPath);
} else {
Storage::setSourcePathAndUser($oldPath);