diff options
author | Julius Härtl <jus@bitgrid.net> | 2022-08-24 18:01:10 +0200 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2022-08-24 22:20:32 +0200 |
commit | 83b1415906babd3ad521055dd2142fed09250ca6 (patch) | |
tree | d736456cc7a17d3ce4181cd5cc013852e54a7dde /lib/private/Files | |
parent | 4baf960c218d9fc14c7827adf774286c45918855 (diff) | |
download | nextcloud-server-83b1415906babd3ad521055dd2142fed09250ca6.tar.gz nextcloud-server-83b1415906babd3ad521055dd2142fed09250ca6.zip |
Only pass parent if paths match
As the user folder might be initialized by the root from two levels
down the hierarchy, passing this as a parent only works if the path matches
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib/private/Files')
-rw-r--r-- | lib/private/Files/Node/Folder.php | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/private/Files/Node/Folder.php b/lib/private/Files/Node/Folder.php index 868906c82d1..81ca7e254d9 100644 --- a/lib/private/Files/Node/Folder.php +++ b/lib/private/Files/Node/Folder.php @@ -119,10 +119,11 @@ class Folder extends Node implements \OCP\Files\Folder { } else { $isDir = $info->getType() === FileInfo::TYPE_FOLDER; } + $parent = dirname($path) === $this->getPath() ? $this : null; if ($isDir) { - return new Folder($this->root, $this->view, $path, $info); + return new Folder($this->root, $this->view, $path, $info, $parent); } else { - return new File($this->root, $this->view, $path, $info); + return new File($this->root, $this->view, $path, $info, $parent); } } @@ -163,7 +164,8 @@ class Folder extends Node implements \OCP\Files\Folder { if (!$this->view->mkdir($fullPath)) { throw new NotPermittedException('Could not create folder'); } - $node = new Folder($this->root, $this->view, $fullPath, null, $this); + $parent = dirname($fullPath) === $this->getPath() ? $this : null; + $node = new Folder($this->root, $this->view, $fullPath, null, $parent); $this->sendHooks(['postWrite', 'postCreate'], [$node]); return $node; } else { |