diff options
author | Daniel Kesselberg <mail@danielkesselberg.de> | 2020-02-22 20:02:56 +0100 |
---|---|---|
committer | Daniel Kesselberg <mail@danielkesselberg.de> | 2020-02-22 20:06:16 +0100 |
commit | 8e8e912015309700fc2d5ee021cd171e18c27b47 (patch) | |
tree | 3fc05306c3ee2380b7d1c9a0a5107c2fcdb5c70f /apps/settings/lib | |
parent | daf1d74af977b371cb8f5a5a8048f4853fc4ec53 (diff) | |
download | nextcloud-server-8e8e912015309700fc2d5ee021cd171e18c27b47.tar.gz nextcloud-server-8e8e912015309700fc2d5ee021cd171e18c27b47.zip |
Make sure quota_preset is using numerical indexes
If one set quota_present to "default, none, 1 GB, 5 GB, 10 GB" the old implementation will remove default and none but keep the array indexes. Later json_encode will recognize a array with 2 as first index as object and hence quotaPreset.reduce will fail.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Diffstat (limited to 'apps/settings/lib')
-rw-r--r-- | apps/settings/lib/Controller/UsersController.php | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/apps/settings/lib/Controller/UsersController.php b/apps/settings/lib/Controller/UsersController.php index 2c7c17bced2..2c20ce36caa 100644 --- a/apps/settings/lib/Controller/UsersController.php +++ b/apps/settings/lib/Controller/UsersController.php @@ -214,12 +214,7 @@ class UsersController extends Controller { ]; /* QUOTAS PRESETS */ - $quotaPreset = $this->config->getAppValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB'); - $quotaPreset = explode(',', $quotaPreset); - foreach ($quotaPreset as &$preset) { - $preset = trim($preset); - } - $quotaPreset = array_diff($quotaPreset, array('default', 'none')); + $quotaPreset = $this->parseQuotaPreset($this->config->getAppValue('files', 'quota_preset', '1 GB, 5 GB, 10 GB')); $defaultQuota = $this->config->getAppValue('files', 'default_quota', 'none'); \OC::$server->getEventDispatcher()->dispatch('OC\Settings\Users::loadAdditionalScripts'); @@ -248,6 +243,19 @@ class UsersController extends Controller { } /** + * Parse the app value for quota_present + * + * @param string $quotaPreset + * @return array + */ + protected function parseQuotaPreset(string $quotaPreset): array { + // 1 GB, 5 GB, 10 GB => [1 GB, 5 GB, 10 GB] + $presets = array_filter(array_map('trim', explode(',', $quotaPreset))); + // Drop default and none, Make array indexes numerically + return array_values(array_diff($presets, ['default', 'none'])); + } + + /** * check if the admin can change the users password * * The admin can change the passwords if: |