diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2018-05-02 22:05:50 +0200 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2018-05-03 11:31:23 +0200 |
commit | 0ff83f7230a0c16a3ea99390a8e23706adb497c4 (patch) | |
tree | 92ef72626abd45653b14bb542ee792630cbd3ec2 | |
parent | 2aa108000cd5bb29b7be5d7226185b5c1be59e29 (diff) | |
download | nextcloud-server-0ff83f7230a0c16a3ea99390a8e23706adb497c4.tar.gz nextcloud-server-0ff83f7230a0c16a3ea99390a8e23706adb497c4.zip |
Do not allow folder creation with quota of 0
Fixes #4577
Users with a quota of 0 are a special case. Since they can't (ever)
create files on their own storage. Therefor it makes no real that they
can create folders (and possible share those etc).
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
-rw-r--r-- | lib/private/Files/Storage/Wrapper/Quota.php | 8 | ||||
-rw-r--r-- | tests/lib/Files/Storage/Wrapper/QuotaTest.php | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/private/Files/Storage/Wrapper/Quota.php b/lib/private/Files/Storage/Wrapper/Quota.php index 22338f9c3cc..4923dcd4d7a 100644 --- a/lib/private/Files/Storage/Wrapper/Quota.php +++ b/lib/private/Files/Storage/Wrapper/Quota.php @@ -200,4 +200,12 @@ class Quota extends Wrapper { return false; } } + + public function mkdir($path) { + if ($this->quota === 0.0) { + return false; + } + + return parent::mkdir($path); + } } diff --git a/tests/lib/Files/Storage/Wrapper/QuotaTest.php b/tests/lib/Files/Storage/Wrapper/QuotaTest.php index b796e767a7b..546ab69ef6b 100644 --- a/tests/lib/Files/Storage/Wrapper/QuotaTest.php +++ b/tests/lib/Files/Storage/Wrapper/QuotaTest.php @@ -208,4 +208,9 @@ class QuotaTest extends \Test\Files\Storage\Storage { $this->assertTrue($this->instance->instanceOfStorage('\OC\Files\Storage\Wrapper\Wrapper')); $this->assertTrue($this->instance->instanceOfStorage('\OC\Files\Storage\Wrapper\Quota')); } + + public function testNoMkdirQuotaZero() { + $instance = $this->getLimitedStorage(0.0); + $this->assertFalse($instance->mkdir('foobar')); + } } |