mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-19 14:02:58 +01:00
closes #2975
This commit is contained in:
@@ -55,13 +55,16 @@ module.exports = function(User) {
|
||||
|
||||
settings = data.settings;
|
||||
|
||||
var defaultTopicsPerPage = parseInt(meta.config.topicsPerPage, 10) || 20;
|
||||
var defaultPostsPerPage = parseInt(meta.config.postsPerPage, 10) || 20;
|
||||
|
||||
settings.showemail = parseInt(settings.showemail, 10) === 1;
|
||||
settings.showfullname = parseInt(settings.showfullname, 10) === 1;
|
||||
settings.openOutgoingLinksInNewTab = parseInt(settings.openOutgoingLinksInNewTab, 10) === 1;
|
||||
settings.dailyDigestFreq = settings.dailyDigestFreq || 'off';
|
||||
settings.usePagination = (settings.usePagination === null || settings.usePagination === undefined) ? parseInt(meta.config.usePagination, 10) === 1 : parseInt(settings.usePagination, 10) === 1;
|
||||
settings.topicsPerPage = Math.min(settings.topicsPerPage ? parseInt(settings.topicsPerPage, 10) : parseInt(meta.config.topicsPerPage, 10) || 20, 20);
|
||||
settings.postsPerPage = Math.min(settings.postsPerPage ? parseInt(settings.postsPerPage, 10) : parseInt(meta.config.postsPerPage, 10) || 10, 20);
|
||||
settings.topicsPerPage = Math.min(settings.topicsPerPage ? parseInt(settings.topicsPerPage, 10) : defaultTopicsPerPage, defaultTopicsPerPage);
|
||||
settings.postsPerPage = Math.min(settings.postsPerPage ? parseInt(settings.postsPerPage, 10) : defaultPostsPerPage, defaultPostsPerPage);
|
||||
settings.notificationSounds = parseInt(settings.notificationSounds, 10) === 1;
|
||||
settings.userLang = settings.userLang || meta.config.defaultLang || 'en_GB';
|
||||
settings.topicPostSort = settings.topicPostSort || meta.config.topicPostSort || 'oldest_to_newest';
|
||||
@@ -78,7 +81,7 @@ module.exports = function(User) {
|
||||
}
|
||||
|
||||
User.saveSettings = function(uid, data, callback) {
|
||||
if(!data.topicsPerPage || !data.postsPerPage || parseInt(data.topicsPerPage, 10) <= 0 || parseInt(data.postsPerPage, 10) <= 0) {
|
||||
if (invalidPaginationSettings(data)) {
|
||||
return callback(new Error('[[error:invalid-pagination-value]]'));
|
||||
}
|
||||
|
||||
@@ -94,8 +97,8 @@ module.exports = function(User) {
|
||||
openOutgoingLinksInNewTab: data.openOutgoingLinksInNewTab,
|
||||
dailyDigestFreq: data.dailyDigestFreq || 'off',
|
||||
usePagination: data.usePagination,
|
||||
topicsPerPage: Math.min(data.topicsPerPage, 20),
|
||||
postsPerPage: Math.min(data.postsPerPage, 20),
|
||||
topicsPerPage: Math.min(data.topicsPerPage, parseInt(meta.config.topicsPerPage, 10) || 20),
|
||||
postsPerPage: Math.min(data.postsPerPage, parseInt(meta.config.postsPerPage, 10) || 20),
|
||||
notificationSounds: data.notificationSounds,
|
||||
userLang: data.userLang || meta.config.defaultLang,
|
||||
followTopicsOnCreate: data.followTopicsOnCreate,
|
||||
@@ -116,6 +119,12 @@ module.exports = function(User) {
|
||||
], callback);
|
||||
};
|
||||
|
||||
function invalidPaginationSettings(data) {
|
||||
return !data.topicsPerPage || !data.postsPerPage ||
|
||||
parseInt(data.topicsPerPage, 10) <= 0 || parseInt(data.postsPerPage, 10) <= 0 ||
|
||||
parseInt(data.topicsPerPage, 10) > meta.config.topicsPerPage || parseInt(data.postsPerPage, 10) > meta.config.postsPerPage;
|
||||
}
|
||||
|
||||
function updateDigestSetting(uid, dailyDigestFreq, callback) {
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
|
||||
Reference in New Issue
Block a user