From: Robin Appelman Date: Wed, 9 Sep 2020 11:48:48 +0000 (+0200) Subject: only get the permissions from the share source if it's not already cached X-Git-Tag: v20.0.0beta4~20^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=928cee2ae717f4df699bcd3604c0028d3f159b44;p=nextcloud-server.git only get the permissions from the share source if it's not already cached this prevents having to setup the share source when doing metadata stuff on the share root Signed-off-by: Robin Appelman --- diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index 587d49f4a46..dae33376f6d 100644 --- a/apps/files_sharing/lib/Cache.php +++ b/apps/files_sharing/lib/Cache.php @@ -146,17 +146,16 @@ class Cache extends CacheJail { } try { - $sharePermissions = $this->storage->getPermissions($entry['path']); + if (isset($entry['permissions'])) { + $entry['permissions'] &= $this->storage->getShare()->getPermissions(); + } else { + $entry['permissions'] = $this->storage->getPermissions($entry['path']); + } } catch (StorageNotAvailableException $e) { // thrown by FailedStorage e.g. when the sharer does not exist anymore // (IDE may say the exception is never thrown – false negative) $sharePermissions = 0; } - if (isset($entry['permissions'])) { - $entry['permissions'] &= $sharePermissions; - } else { - $entry['permissions'] = $sharePermissions; - } $entry['uid_owner'] = $this->storage->getOwner(''); $entry['displayname_owner'] = $this->getOwnerDisplayName(); if ($path === '') {