summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_sharing/lib/SharedMount.php13
-rw-r--r--lib/private/Files/Config/LazyStorageMountInfo.php6
-rw-r--r--lib/private/Files/Mount/MountPoint.php7
-rw-r--r--lib/public/Files/Mount/IMountPoint.php8
4 files changed, 29 insertions, 5 deletions
diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php
index 57610db9076..d160eb24228 100644
--- a/apps/files_sharing/lib/SharedMount.php
+++ b/apps/files_sharing/lib/SharedMount.php
@@ -235,4 +235,17 @@ class SharedMount extends MountPoint implements MoveableMount {
public function getStorageRootId() {
return $this->getShare()->getNodeId();
}
+
+ /**
+ * @return int
+ */
+ public function getNumericStorageId() {
+ $builder = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+
+ $query = $builder->select('storage')
+ ->from('filecache')
+ ->where($builder->expr()->eq('fileid', $builder->createNamedParameter($this->getShare()->getNodeId())));
+
+ return $query->execute()->fetchColumn();
+ }
}
diff --git a/lib/private/Files/Config/LazyStorageMountInfo.php b/lib/private/Files/Config/LazyStorageMountInfo.php
index 2e9639f5f08..4df813d57d0 100644
--- a/lib/private/Files/Config/LazyStorageMountInfo.php
+++ b/lib/private/Files/Config/LazyStorageMountInfo.php
@@ -48,11 +48,7 @@ class LazyStorageMountInfo extends CachedMountInfo {
*/
public function getStorageId() {
if (!$this->storageId) {
- $storage = $this->mount->getStorage();
- if (!$storage) {
- return -1;
- }
- $this->storageId = $storage->getStorageCache()->getNumericId();
+ $this->storageId = $this->mount->getNumericStorageId();
}
return parent::getStorageId();
}
diff --git a/lib/private/Files/Mount/MountPoint.php b/lib/private/Files/Mount/MountPoint.php
index d6a6a5565ad..8b8f0574ae0 100644
--- a/lib/private/Files/Mount/MountPoint.php
+++ b/lib/private/Files/Mount/MountPoint.php
@@ -192,6 +192,13 @@ class MountPoint implements IMountPoint {
}
/**
+ * @return int
+ */
+ public function getNumericStorageId() {
+ return $this->getStorage()->getStorageCache()->getNumericId();
+ }
+
+ /**
* @param string $path
* @return string
*/
diff --git a/lib/public/Files/Mount/IMountPoint.php b/lib/public/Files/Mount/IMountPoint.php
index f9a00af7cb5..0876d8b11d6 100644
--- a/lib/public/Files/Mount/IMountPoint.php
+++ b/lib/public/Files/Mount/IMountPoint.php
@@ -62,6 +62,14 @@ interface IMountPoint {
public function getStorageId();
/**
+ * Get the id of the storages
+ *
+ * @return int
+ * @since 9.1.0
+ */
+ public function getNumericStorageId();
+
+ /**
* Get the path relative to the mountpoint
*
* @param string $path absolute path to a file or folder