port already approved bugfix to master, https://github.com/owncloud/core/pull/1479

This commit is contained in:
Björn Schießle 2013-02-06 14:19:32 +01:00
parent 2fdf8ff3e7
commit 9e08f85c5e

View file

@ -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)) {