diff --git a/public/language/en_GB/error.json b/public/language/en_GB/error.json index e52b7767b1..e028997eea 100644 --- a/public/language/en_GB/error.json +++ b/public/language/en_GB/error.json @@ -18,7 +18,7 @@ "invalid-username-or-password": "Please specify both a username and password", "invalid-search-term": "Invalid search term", - "invalid-pagination-value": "Invalid pagination value", + "invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2", "username-taken": "Username taken", "email-taken": "Email taken", diff --git a/src/user/settings.js b/src/user/settings.js index 7adc79829e..6d9cf7d36a 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -91,8 +91,12 @@ module.exports = function(User) { } User.saveSettings = function(uid, data, callback) { - if (invalidPaginationSettings(data)) { - return callback(new Error('[[error:invalid-pagination-value]]')); + if (!data.postsPerPage || parseInt(data.postsPerPage, 10) <= 1 || parseInt(data.postsPerPage, 10) > meta.config.postsPerPage) { + return callback(new Error('[[error:invalid-pagination-value, 2, ' + meta.config.postsPerPage + ']]')); + } + + if (!data.topicsPerPage || parseInt(data.topicsPerPage, 10) <= 1 || parseInt(data.topicsPerPage, 10) > meta.config.topicsPerPage) { + return callback(new Error('[[error:invalid-pagination-value, 2, ' + meta.config.topicsPerPage + ']]')); } data.userLang = data.userLang || meta.config.defaultLang; @@ -136,12 +140,6 @@ 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) {