diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2023-06-21 20:04:35 +0200 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2023-06-21 20:28:01 +0200 |
commit | 27f6f86d756d53dcfbf150266646c6be22409ec9 (patch) | |
tree | 8a44dc5b485f35465ddacb78d3761b72d1fd302a | |
parent | a0f9556f7c68422a5637b4d5f5a1694f7e78e591 (diff) | |
download | nextcloud-server-27f6f86d756d53dcfbf150266646c6be22409ec9.tar.gz nextcloud-server-27f6f86d756d53dcfbf150266646c6be22409ec9.zip |
fix: obey offset and limit for results from favs and circles
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r-- | apps/dav/lib/Connector/Sabre/FilesReportPlugin.php | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php b/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php index 450fe134772..a828f873086 100644 --- a/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php @@ -219,6 +219,10 @@ class FilesReportPlugin extends ServerPlugin { // gather all file ids matching filter try { $resultFileIds = $this->processFilterRulesForFileIDs($filterRules); + // no logic in circles and favorites for paging, we always have all results, and slice later on + $resultFileIds = array_slice($resultFileIds, $offset ?? 0, $limit ?? null); + // fetching nodes has paging on DB level – therefore we cannot mix and slice the results, similar + // to user backends. I.e. the final result may return more results than requested. $resultNodes = $this->processFilterRulesForFileNodes($filterRules, $limit ?? null, $offset ?? null); } catch (TagNotFoundException $e) { throw new PreconditionFailed('Cannot filter by non-existing tag', 0, $e); |