aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <vincent@nextcloud.com>2022-11-21 16:21:25 +0100
committerVincent Petry <vincent@nextcloud.com>2022-11-21 16:24:22 +0100
commit0b09531dc66f6a82fd1db997ceff85b1407f01fa (patch)
tree6f38b5d359ba31fd988697ab8cea3a20e0de54c1
parentd0c72cc11a14f4c1d9ca9db82ed4f2b19346bfb6 (diff)
downloadnextcloud-server-0b09531dc66f6a82fd1db997ceff85b1407f01fa.tar.gz
nextcloud-server-0b09531dc66f6a82fd1db997ceff85b1407f01fa.zip
Don't use quota cache through user management
When querying the free space through user management APIs, don't use the cached quota value. The latter is only there to accelerate PROPFINDs. Signed-off-by: Vincent Petry <vincent@nextcloud.com>
-rw-r--r--apps/provisioning_api/lib/Controller/AUserData.php2
-rw-r--r--lib/private/legacy/OC_Helper.php12
2 files changed, 9 insertions, 5 deletions
diff --git a/apps/provisioning_api/lib/Controller/AUserData.php b/apps/provisioning_api/lib/Controller/AUserData.php
index f2fbea7b04f..0fc2bb6f0d3 100644
--- a/apps/provisioning_api/lib/Controller/AUserData.php
+++ b/apps/provisioning_api/lib/Controller/AUserData.php
@@ -245,7 +245,7 @@ abstract class AUserData extends OCSController {
try {
\OC_Util::tearDownFS();
\OC_Util::setupFS($userId);
- $storage = OC_Helper::getStorageInfo('/');
+ $storage = OC_Helper::getStorageInfo('/', null, true, false);
$data = [
'free' => $storage['free'],
'used' => $storage['used'],
diff --git a/lib/private/legacy/OC_Helper.php b/lib/private/legacy/OC_Helper.php
index b793029e1f1..3b409fd1d04 100644
--- a/lib/private/legacy/OC_Helper.php
+++ b/lib/private/legacy/OC_Helper.php
@@ -457,10 +457,12 @@ class OC_Helper {
*
* @param string $path
* @param \OCP\Files\FileInfo $rootInfo (optional)
+ * @param bool $includeMountPoints whether to include mount points in the size calculation
+ * @param bool $useCache whether to use the cached quota values
* @return array
* @throws \OCP\Files\NotFoundException
*/
- public static function getStorageInfo($path, $rootInfo = null, $includeMountPoints = true) {
+ public static function getStorageInfo($path, $rootInfo = null, $includeMountPoints = true, $useCache = true) {
/** @var ICacheFactory $cacheFactory */
$cacheFactory = \OC::$server->get(ICacheFactory::class);
$memcache = $cacheFactory->createLocal('storage_info');
@@ -470,9 +472,11 @@ class OC_Helper {
$fullPath = Filesystem::getView()->getAbsolutePath($path);
$cacheKey = $fullPath. '::' . ($includeMountPoints ? 'include' : 'exclude');
- $cached = $memcache->get($cacheKey);
- if ($cached) {
- return $cached;
+ if ($useCache) {
+ $cached = $memcache->get($cacheKey);
+ if ($cached) {
+ return $cached;
+ }
}
if (!$rootInfo) {