aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib/External/Cache.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_sharing/lib/External/Cache.php')
-rw-r--r--apps/files_sharing/lib/External/Cache.php51
1 files changed, 51 insertions, 0 deletions
diff --git a/apps/files_sharing/lib/External/Cache.php b/apps/files_sharing/lib/External/Cache.php
new file mode 100644
index 00000000000..027f682d818
--- /dev/null
+++ b/apps/files_sharing/lib/External/Cache.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCA\Files_Sharing\External;
+
+use OCP\Federation\ICloudId;
+
+class Cache extends \OC\Files\Cache\Cache {
+ private $remote;
+ private $remoteUser;
+
+ /**
+ * @param Storage $storage
+ * @param ICloudId $cloudId
+ */
+ public function __construct(
+ private $storage,
+ private ICloudId $cloudId,
+ ) {
+ [, $remote] = explode('://', $this->cloudId->getRemote(), 2);
+ $this->remote = $remote;
+ $this->remoteUser = $this->cloudId->getUser();
+ parent::__construct($this->storage);
+ }
+
+ public function get($file) {
+ $result = parent::get($file);
+ if (!$result) {
+ return false;
+ }
+ $result['displayname_owner'] = $this->cloudId->getDisplayId();
+ if (!$file || $file === '') {
+ $result['is_share_mount_point'] = true;
+ $mountPoint = rtrim($this->storage->getMountPoint());
+ $result['name'] = basename($mountPoint);
+ }
+ return $result;
+ }
+
+ public function getFolderContentsById($fileId) {
+ $results = parent::getFolderContentsById($fileId);
+ foreach ($results as &$file) {
+ $file['displayname_owner'] = $this->cloudId->getDisplayId();
+ }
+ return $results;
+ }
+}