aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Files
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2022-08-24 18:01:10 +0200
committerJulius Härtl <jus@bitgrid.net>2022-08-24 22:20:32 +0200
commit83b1415906babd3ad521055dd2142fed09250ca6 (patch)
treed736456cc7a17d3ce4181cd5cc013852e54a7dde /lib/private/Files
parent4baf960c218d9fc14c7827adf774286c45918855 (diff)
downloadnextcloud-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.php8
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 {