diff options
author | Robin Appelman <robin@icewind.nl> | 2016-08-09 15:52:13 +0200 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2016-08-09 15:52:13 +0200 |
commit | a999420c7561791a30ac05ac389876f45aa6c11b (patch) | |
tree | 61a75d06f4cef5560732816dc518222e91a49532 | |
parent | c04b0364acecc3b9c9bf5ee37d0e7db5b5b5234a (diff) | |
download | nextcloud-server-a999420c7561791a30ac05ac389876f45aa6c11b.tar.gz nextcloud-server-a999420c7561791a30ac05ac389876f45aa6c11b.zip |
get shared storage storage id without setting up the storage
-rw-r--r-- | apps/files_sharing/lib/SharedMount.php | 13 | ||||
-rw-r--r-- | lib/private/Files/Config/LazyStorageMountInfo.php | 6 | ||||
-rw-r--r-- | lib/private/Files/Mount/MountPoint.php | 7 | ||||
-rw-r--r-- | lib/public/Files/Mount/IMountPoint.php | 8 |
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 |