summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2023-08-17 19:43:32 +0200
committerbackportbot-nextcloud[bot] <backportbot-nextcloud[bot]@users.noreply.github.com>2023-08-28 12:02:17 +0000
commit5df53bd0fd45a3bf58a81608bd339d58fb76f1dc (patch)
tree7f610260f146712ea6243f86711d91f67dd62644
parent68ae8706d83f726e4189059516008aa2a8863429 (diff)
downloadnextcloud-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.php16
-rw-r--r--apps/files_sharing/lib/SharedStorage.php3
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;
}