diff options
author | Robin Appelman <robin@icewind.nl> | 2020-09-09 14:48:48 +0300 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2020-09-09 14:48:48 +0300 |
commit | 928cee2ae717f4df699bcd3604c0028d3f159b44 (patch) | |
tree | 6c4a0f2edaca3f2c2fac7423873ba3732db437b9 | |
parent | f0b46ea605548d9feb4af115a3d05cf2cff24bda (diff) |
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 <robin@icewind.nl>
-rw-r--r-- | apps/files_sharing/lib/Cache.php | 11 |
1 files changed, 5 insertions, 6 deletions
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 === '') { |