diff options
author | Ferdinand Thiessen <opensource@fthiessen.de> | 2025-03-20 18:45:10 +0100 |
---|---|---|
committer | Ferdinand Thiessen <opensource@fthiessen.de> | 2025-03-20 18:45:10 +0100 |
commit | 1dc4c73093a97ce3247f063aee551b5e21c87f17 (patch) | |
tree | ecc420bff84a8976aafae2e28aae2172a5633489 | |
parent | 569b21fdfe659af70aa7f9c23e8def2f96a20c3c (diff) | |
download | nextcloud-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.php | 18 |
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); |