From f140e3a03a505a62ba861b239fb781f8e8b10a65 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 9 Sep 2020 13:48:48 +0200 Subject: [PATCH] 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 --- apps/files_sharing/lib/Cache.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index 587d49f4a4..dae33376f6 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 === '') {