瀏覽代碼

for group shares only the parent has the up-to-date permission. Make sure that we always use this permission, except if the user permission is '0' because in this case the user unshared the group share from self

tags/v8.0.0alpha1
Bjoern Schiessle 9 年之前
父節點
當前提交
d242e518f9
共有 1 個檔案被更改,包括 12 行新增1 行删除
  1. 12
    1
      lib/private/share/share.php

+ 12
- 1
lib/private/share/share.php 查看文件

@@ -1295,7 +1295,7 @@ class Share extends \OC\Share\Constants {
}
}

if ($shareType == self::$shareTypeUserAndGroups) {
if ($shareType == self::$shareTypeUserAndGroups && $limit === 1) {
// Make sure the unique user target is returned if it exists,
// unique targets should follow the group share in the database
// If the limit is not 1, the filtering can be done later
@@ -1334,6 +1334,12 @@ class Share extends \OC\Share\Constants {
$row['share_type'] = self::SHARE_TYPE_GROUP;
$row['unique_name'] = true; // remember that we use a unique name for this user
$row['share_with'] = $items[$row['parent']]['share_with'];
// if the group share was unshared from the user we keep the permission, otherwise
// we take the permission from the parent because this is always the up-to-date
// permission for the group share
if ($row['permissions'] > 0) {
$row['permissions'] = $items[$row['parent']]['permissions'];
}
// Remove the parent group share
unset($items[$row['parent']]);
if ($row['permissions'] == 0) {
@@ -1657,6 +1663,11 @@ class Share extends \OC\Share\Constants {
$fileTarget = $sourceExists['file_target'];
$itemTarget = $sourceExists['item_target'];

// for group shares we don't need a additional entry if the target is the same
//if($isGroupShare && $groupItemTarget === $itemTarget) {
// continue;
//}

} elseif(!$sourceExists && !$isGroupShare) {

$itemTarget = Helper::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $user,

Loading…
取消
儲存