diff --git a/src/user/settings.js b/src/user/settings.js index 9aa247bd79..de0da0641d 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -2,6 +2,7 @@ 'use strict'; var async = require('async'); +var _ = require('underscore'); var meta = require('../meta'); var db = require('../database'); @@ -25,7 +26,7 @@ module.exports = function (User) { var cached = cache.get('user:' + uid + ':settings'); if (cached) { - return onSettingsLoaded(uid, cached || {}, callback); + return onSettingsLoaded(uid, _.clone(cached || {}), callback); } async.waterfall([ @@ -36,7 +37,7 @@ module.exports = function (User) { settings = settings || {}; settings.uid = uid; cache.set('user:' + uid + ':settings', settings); - onSettingsLoaded(uid, settings || {}, next); + onSettingsLoaded(uid, _.clone(settings || {}), next); }, ], callback); }; @@ -47,7 +48,7 @@ module.exports = function (User) { return cache.get('user:' + uid + ':settings') || {}; }); async.map(settings, function (setting, next) { - onSettingsLoaded(setting.uid, setting, next); + onSettingsLoaded(setting.uid, _.clone(setting), next); }, next); }