Return default user setting if not configured for API endpoint /user/settings/{settingKey} (fixes #1169)

This commit is contained in:
Bernd Bestel
2020-12-10 18:02:24 +01:00
parent 48aa9fd138
commit 4b1766ead0
2 changed files with 11 additions and 3 deletions

View File

@@ -53,14 +53,22 @@ class UsersService extends BaseService
public function GetUserSetting($userId, $settingKey)
{
$settingRow = $this->getDatabase()->user_settings()->where('user_id = :1 AND key = :2', $userId, $settingKey)->fetch();
if ($settingRow !== null)
{
return $settingRow->value;
}
else
{
return null;
// Use the configured default values for a missing setting, otherwise return NULL
global $GROCY_DEFAULT_USER_SETTINGS;
if (array_key_exists($settingKey, $GROCY_DEFAULT_USER_SETTINGS))
{
return $GROCY_DEFAULT_USER_SETTINGS[$settingKey];
}
else
{
return null;
}
}
}
@@ -69,7 +77,6 @@ class UsersService extends BaseService
$settings = [];
$settingRows = $this->getDatabase()->user_settings()->where('user_id = :1', $userId)->fetchAll();
foreach ($settingRows as $settingRow)
{
$settings[$settingRow->key] = $settingRow->value;