From 9e08f85c5e8b57d759cecc9ca145a816e121fe6c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Wed, 6 Feb 2013 14:19:32 +0100 Subject: [PATCH] port already approved bugfix to master, https://github.com/owncloud/core/pull/1479 --- lib/public/share.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/public/share.php b/lib/public/share.php index 9aacf5e3449..d46bee26dd4 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -721,6 +721,7 @@ class Share { } $items = array(); $targets = array(); + $switchedItems = array(); while ($row = $result->fetchRow()) { // Filter out duplicate group shares for users with unique targets if ($row['share_type'] == self::$shareTypeGroupUserUnique && isset($items[$row['parent']])) { @@ -745,6 +746,7 @@ class Share { // Switch ids if sharing permission is granted on only one share to ensure correct parent is used if resharing if (~(int)$items[$id]['permissions'] & PERMISSION_SHARE && (int)$row['permissions'] & PERMISSION_SHARE) { $items[$row['id']] = $items[$id]; + $switchedItems[$id] = $row['id']; unset($items[$id]); $id = $row['id']; } @@ -848,7 +850,11 @@ class Share { } } // Remove collection item - unset($items[$row['id']]); + $toRemove = $row['id']; + if (array_key_exists($toRemove, $switchedItems)) { + $toRemove = $switchedItems[$toRemove]; + } + unset($items[$toRemove]); } } if (!empty($collectionItems)) { -- 2.39.5