diff --git a/src/user/settings.js b/src/user/settings.js index 8f24f54a05..362019491a 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -24,17 +24,17 @@ module.exports = function(User) { settings = data.settings; - settings.showemail = settings.showemail ? parseInt(settings.showemail, 10) !== 0 : false; - settings.openOutgoingLinksInNewTab = settings.openOutgoingLinksInNewTab ? parseInt(settings.openOutgoingLinksInNewTab, 10) !== 0 : false; + settings.showemail = parseInt(settings.showemail, 10) === 1; + settings.openOutgoingLinksInNewTab = parseInt(settings.openOutgoingLinksInNewTab, 10) === 1; settings.dailyDigestFreq = settings.dailyDigestFreq || 'off'; - settings.usePagination = settings.usePagination ? parseInt(settings.usePagination, 10) === 1 : parseInt(meta.config.usePagination, 10) === 1; + 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.notificationSounds = settings.notificationSounds ? parseInt(settings.notificationSounds, 10) === 1 : true; + settings.notificationSounds = parseInt(settings.notificationSounds, 10) === 1; settings.language = settings.language || meta.config.defaultLang || 'en_GB'; settings.topicPostSort = settings.topicPostSort || meta.config.topicPostSort || 'oldest_to_newest'; - settings.followTopicsOnCreate = settings.followTopicsOnCreate ? parseInt(settings.followTopicsOnCreate, 10) === 1 : true; - settings.followTopicsOnReply = settings.followTopicsOnReply ? parseInt(settings.followTopicsOnReply, 10) === 1 : false; + settings.followTopicsOnCreate = (settings.followTopicsOnCreate === null || settings.followTopicsOnCreate === undefined) ? true : parseInt(settings.followTopicsOnCreate, 10) === 1; + settings.followTopicsOnReply = parseInt(settings.followTopicsOnReply, 10) === 1; callback(null, settings); }); }); @@ -66,7 +66,6 @@ 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) { return callback(new Error('[[error:invalid-pagination-value]]')); }