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>
This commit is contained in:
parent
daf1d74af9
commit
8e8e912015
1 changed files with 14 additions and 6 deletions
|
@ -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');
|
||||
|
@ -247,6 +242,19 @@ class UsersController extends Controller {
|
|||
return new TemplateResponse('settings', 'settings-vue', ['serverData' => $serverData]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue