diff options
author | Björn Schießle <bjoern@schiessle.org> | 2016-08-10 14:56:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-10 14:56:41 +0200 |
commit | 219f36d2616126684f34372e36f3c76355a78aa7 (patch) | |
tree | 4a70cbac1c92b4899a5d055161f541eb87d454a6 | |
parent | e8571a2b196b6f255ae05e5c13d544593628defa (diff) | |
parent | a999420c7561791a30ac05ac389876f45aa6c11b (diff) | |
download | nextcloud-server-219f36d2616126684f34372e36f3c76355a78aa7.tar.gz nextcloud-server-219f36d2616126684f34372e36f3c76355a78aa7.zip |
Merge pull request #820 from nextcloud/shared-storage-lazy-numeric-id
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 |