|
@@ -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;
|