diff options
author | Robin Appelman <robin@icewind.nl> | 2023-08-17 19:43:32 +0200 |
---|---|---|
committer | backportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com> | 2023-08-28 12:02:17 +0000 |
commit | 5df53bd0fd45a3bf58a81608bd339d58fb76f1dc (patch) | |
tree | 7f610260f146712ea6243f86711d91f67dd62644 | |
parent | 68ae8706d83f726e4189059516008aa2a8863429 (diff) | |
download | nextcloud-server-5df53bd0fd45a3bf58a81608bd339d58fb76f1dc.tar.gz nextcloud-server-5df53bd0fd45a3bf58a81608bd339d58fb76f1dc.zip |
pass the share to the cache instead of having to ask the storage
Signed-off-by: Robin Appelman <robin@icewind.nl>
-rw-r--r-- | apps/files_sharing/lib/Cache.php | 16 | ||||
-rw-r--r-- | apps/files_sharing/lib/SharedStorage.php | 3 |
2 files changed, 14 insertions, 5 deletions
diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index b99a511312e..594660661ca 100644 --- a/apps/files_sharing/lib/Cache.php +++ b/apps/files_sharing/lib/Cache.php @@ -41,6 +41,7 @@ use OCP\Files\Search\ISearchOperator; use OCP\Files\StorageNotAvailableException; use OCP\ICacheFactory; use OCP\IUserManager; +use OCP\Share\IShare; /** * Metadata cache for shared files @@ -55,15 +56,22 @@ class Cache extends CacheJail { private ?string $ownerDisplayName = null; private $numericId; private DisplayNameCache $displayNameCache; + private IShare $share; /** * @param SharedStorage $storage */ - public function __construct($storage, ICacheEntry $sourceRootInfo, DisplayNameCache $displayNameCache) { + public function __construct( + $storage, + ICacheEntry $sourceRootInfo, + DisplayNameCache $displayNameCache, + IShare $share + ) { $this->storage = $storage; $this->sourceRootInfo = $sourceRootInfo; $this->numericId = $sourceRootInfo->getStorageId(); $this->displayNameCache = $displayNameCache; + $this->share = $share; parent::__construct( null, @@ -150,7 +158,7 @@ class Cache extends CacheJail { try { if (isset($entry['permissions'])) { - $entry['permissions'] &= $this->storage->getShare()->getPermissions(); + $entry['permissions'] &= $this->share->getPermissions(); } else { $entry['permissions'] = $this->storage->getPermissions($entry['path']); } @@ -159,7 +167,7 @@ class Cache extends CacheJail { // (IDE may say the exception is never thrown – false negative) $sharePermissions = 0; } - $entry['uid_owner'] = $this->storage->getOwner(''); + $entry['uid_owner'] = $this->share->getShareOwner(); $entry['displayname_owner'] = $this->getOwnerDisplayName(); if ($path === '') { $entry['is_share_mount_point'] = true; @@ -169,7 +177,7 @@ class Cache extends CacheJail { private function getOwnerDisplayName() { if (!$this->ownerDisplayName) { - $uid = $this->storage->getOwner(''); + $uid = $this->share->getShareOwner(); $this->ownerDisplayName = $this->displayNameCache->getDisplayName($uid) ?? $uid; } return $this->ownerDisplayName; diff --git a/apps/files_sharing/lib/SharedStorage.php b/apps/files_sharing/lib/SharedStorage.php index 5243c8d1594..c9d8fbffc64 100644 --- a/apps/files_sharing/lib/SharedStorage.php +++ b/apps/files_sharing/lib/SharedStorage.php @@ -415,7 +415,8 @@ class SharedStorage extends \OC\Files\Storage\Wrapper\Jail implements ISharedSto $this->cache = new \OCA\Files_Sharing\Cache( $storage, $sourceRoot, - \OC::$server->get(DisplayNameCache::class) + \OC::$server->get(DisplayNameCache::class), + $this->getShare() ); return $this->cache; } |