Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Files/Storage/Wrapper/Quota.php')
-rw-r--r--lib/private/Files/Storage/Wrapper/Quota.php27
1 files changed, 18 insertions, 9 deletions
diff --git a/lib/private/Files/Storage/Wrapper/Quota.php b/lib/private/Files/Storage/Wrapper/Quota.php
index 492b5aba436..a71d5bdf61e 100644
--- a/lib/private/Files/Storage/Wrapper/Quota.php
+++ b/lib/private/Files/Storage/Wrapper/Quota.php
@@ -27,6 +27,7 @@
namespace OC\Files\Storage\Wrapper;
+use OC\Files\Filesystem;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\Storage\IStorage;
@@ -42,6 +43,8 @@ class Quota extends Wrapper {
*/
protected $sizeRoot;
+ private $config;
+
/**
* @param array $parameters
*/
@@ -49,6 +52,7 @@ class Quota extends Wrapper {
parent::__construct($parameters);
$this->quota = $parameters['quota'];
$this->sizeRoot = isset($parameters['root']) ? $parameters['root'] : '';
+ $this->config = \OC::$server->getSystemConfig();
}
/**
@@ -63,16 +67,21 @@ class Quota extends Wrapper {
* @param \OC\Files\Storage\Storage $storage
*/
protected function getSize($path, $storage = null) {
- if (is_null($storage)) {
- $cache = $this->getCache();
- } else {
- $cache = $storage->getCache();
- }
- $data = $cache->get($path);
- if ($data instanceof ICacheEntry and isset($data['size'])) {
- return $data['size'];
+ if ($this->config->getValue('quota_include_external_storage', false)) {
+ $rootInfo = Filesystem::getFileInfo('', 'ext');
+ return $rootInfo->getSize(true);
} else {
- return \OCP\Files\FileInfo::SPACE_NOT_COMPUTED;
+ if (is_null($storage)) {
+ $cache = $this->getCache();
+ } else {
+ $cache = $storage->getCache();
+ }
+ $data = $cache->get($path);
+ if ($data instanceof ICacheEntry and isset($data['size'])) {
+ return $data['size'];
+ } else {
+ return \OCP\Files\FileInfo::SPACE_NOT_COMPUTED;
+ }
}
}