From fce1a164a07a33fe2ec71d845a733191bccf59a5 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 14 Aug 2023 12:58:46 +0200 Subject: [PATCH 1/2] don't preload metadata for the sub-childen Signed-off-by: Robin Appelman --- apps/dav/lib/Connector/Sabre/FilesPlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php index ae3caa29b919e..7d7b27df890ac 100644 --- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php @@ -465,7 +465,7 @@ public function handleGetProperties(PropFind $propFind, \Sabre\DAV\INode $node) $requestProperties = $propFind->getRequestedProperties(); - if ($this->config->getSystemValueBool('enable_file_metadata', true)) { + if ($this->config->getSystemValueBool('enable_file_metadata', true) && $propFind->getDepth() === 1) { $requestedMetaData = []; foreach ($requestProperties as $requestProperty) { if (isset(self::ALL_METADATA_PROPS[$requestProperty])) { From 76acc3ada729127c3d7eb50f03bcb2a0a56dac66 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 14 Aug 2023 13:01:14 +0200 Subject: [PATCH 2/2] only triger metadata preload logic when at least one metadata is requested Signed-off-by: Robin Appelman --- apps/dav/lib/Connector/Sabre/FilesPlugin.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php index 7d7b27df890ac..709a4cd68ed8f 100644 --- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php @@ -465,13 +465,17 @@ public function handleGetProperties(PropFind $propFind, \Sabre\DAV\INode $node) $requestProperties = $propFind->getRequestedProperties(); - if ($this->config->getSystemValueBool('enable_file_metadata', true) && $propFind->getDepth() === 1) { - $requestedMetaData = []; - foreach ($requestProperties as $requestProperty) { - if (isset(self::ALL_METADATA_PROPS[$requestProperty])) { - $requestedMetaData[] = self::ALL_METADATA_PROPS[$requestProperty]; - } + $requestedMetaData = []; + foreach ($requestProperties as $requestProperty) { + if (isset(self::ALL_METADATA_PROPS[$requestProperty])) { + $requestedMetaData[] = self::ALL_METADATA_PROPS[$requestProperty]; } + } + if ( + $this->config->getSystemValueBool('enable_file_metadata', true) && + $propFind->getDepth() === 1 && + $requestedMetaData + ) { $children = $node->getChildren(); // Preloading of the metadata