From fc4d0a86efef1af4d7ea17547e259cfdd16e82b4 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Tue, 1 Nov 2016 12:15:14 +0100 Subject: Fix merging backend results * Merge share types correctly * Filter share types * Order share types Signed-off-by: Roeland Jago Douma --- lib/private/Share20/Manager.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib/private/Share20/Manager.php') diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 9468a1de306..838650ada15 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -887,7 +887,15 @@ class Manager implements IManager { $providers = $this->factory->getAllProviders(); return array_reduce($providers, function($shares, IShareProvider $provider) use ($userId, $node, $reshares) { - return $shares + $provider->getSharesInFolder($userId, $node, $reshares); + $newShares = $provider->getSharesInFolder($userId, $node, $reshares); + foreach ($newShares as $fid => $data) { + if (!isset($shares[$fid])) { + $shares[$fid] = []; + } + + $shares[$fid] = array_merge($shares[$fid], $data); + } + return $shares; }, []); } -- cgit v1.2.3