fix: default values, clamp postsPerPage/topicsPerPage to max

This commit is contained in:
Barış Soner Uşaklı
2020-12-07 12:51:11 -05:00
parent 9da0ed400e
commit 1f32d38778
2 changed files with 18 additions and 3 deletions

View File

@@ -109,9 +109,16 @@ usersAPI.updateSettings = async function (caller, data) {
throw new Error('[[error:no-privileges]]');
}
let defaults = await user.getSettings(0);
defaults = {
postsPerPage: defaults.postsPerPage,
topicsPerPage: defaults.topicsPerPage,
userLang: defaults.userLang,
acpLang: defaults.acpLang,
};
// load raw settings without parsing values to booleans
const current = await db.getObject('user:' + data.uid + ':settings');
const payload = { ...current, ...data.settings };
const payload = { ...defaults, ...current, ...data.settings };
delete payload.uid;
return await user.saveSettings(data.uid, payload);