aboutsummaryrefslogtreecommitdiffstats
path: root/apps/provisioning_api/lib/Controller/UsersController.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/provisioning_api/lib/Controller/UsersController.php')
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php11
1 files changed, 11 insertions, 0 deletions
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index 01e4bac9c2b..a0eda5848ec 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -798,9 +798,20 @@ class UsersController extends AUserData {
if ($quota === -1) {
$quota = 'none';
} else {
+ $maxQuota = (int) $this->config->getAppValue('files', 'max_quota', '-1');
+ if ($maxQuota !== -1 && $quota > $maxQuota) {
+ throw new OCSException('Invalid quota value. ' . $value . ' is exceeding the maximum quota', 102);
+ }
$quota = \OCP\Util::humanFileSize($quota);
}
}
+ // no else block because quota can be set to 'none' in previous if
+ if ($quota === 'none') {
+ $allowUnlimitedQuota = $this->config->getAppValue('files', 'allow_unlimited_quota', '1') === '1';
+ if (!$allowUnlimitedQuota) {
+ throw new OCSException('Unlimited quota is forbidden on this instance', 102);
+ }
+ }
$targetUser->setQuota($quota);
break;
case 'password':