Merge pull request #22553 from nextcloud/backport/22528/stable19

[stable19] Change free space calculation
This commit is contained in:
Roeland Jago Douma 2020-09-04 08:52:25 +02:00 committed by GitHub
commit 77edd1e11d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 6 deletions

View File

@ -708,11 +708,13 @@ class Trashbin {
*/ */
private static function calculateFreeSpace($trashbinSize, $user) { private static function calculateFreeSpace($trashbinSize, $user) {
$config = \OC::$server->getConfig(); $config = \OC::$server->getConfig();
$systemTrashbinSize = (int)$config->getAppValue('files_trashbin', 'trashbin_size', '-1');
$userTrashbinSize = (int)$config->getUserValue($user, 'files_trashbin', 'trashbin_size', '-1'); $userTrashbinSize = (int)$config->getUserValue($user, 'files_trashbin', 'trashbin_size', '-1');
$configuredTrashbinSize = ($userTrashbinSize < 0) ? $systemTrashbinSize : $userTrashbinSize; if ($userTrashbinSize > -1) {
if ($configuredTrashbinSize) { return $userTrashbinSize - $trashbinSize;
return $configuredTrashbinSize - $trashbinSize; }
$systemTrashbinSize = (int)$config->getAppValue('files_trashbin', 'trashbin_size', '-1');
if ($systemTrashbinSize > -1) {
return $systemTrashbinSize - $trashbinSize;
} }
$softQuota = true; $softQuota = true;

View File

@ -119,15 +119,25 @@ class TrashbinTest extends \Test\TestCase {
\OC::$server->getAppManager()->enableApp('files_trashbin'); \OC::$server->getAppManager()->enableApp('files_trashbin');
$config = \OC::$server->getConfig(); $config = \OC::$server->getConfig();
$mockConfig = $this->createMock(\OCP\IConfig::class); $mockConfig = $this->createMock(\OCP\IConfig::class);
$mockConfig->expects($this->any()) $mockConfig
->method('getSystemValue') ->method('getSystemValue')
->willReturnCallback(function ($key, $default) use ($config) { ->willReturnCallback(static function ($key, $default) use ($config) {
if ($key === 'filesystem_check_changes') { if ($key === 'filesystem_check_changes') {
return \OC\Files\Cache\Watcher::CHECK_ONCE; return \OC\Files\Cache\Watcher::CHECK_ONCE;
} else { } else {
return $config->getSystemValue($key, $default); return $config->getSystemValue($key, $default);
} }
}); });
$mockConfig
->method('getUserValue')
->willReturnCallback(static function ($userId, $appName, $key, $default = '') use ($config) {
return $config->getUserValue($userId, $appName, $key, $default);
});
$mockConfig
->method('getAppValue')
->willReturnCallback(static function ($appName, $key, $default = '') use ($config) {
return $config->getAppValue($appName, $key, $default);
});
$this->overwriteService(\OC\AllConfig::class, $mockConfig); $this->overwriteService(\OC\AllConfig::class, $mockConfig);
$this->trashRoot1 = '/' . self::TEST_TRASHBIN_USER1 . '/files_trashbin'; $this->trashRoot1 = '/' . self::TEST_TRASHBIN_USER1 . '/files_trashbin';