From b31966b1ee9fbb47f96c6978364db83c50ce03f4 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 14 Aug 2015 22:02:19 +0200 Subject: [PATCH] use assign in place of merge, make sure references to tavern and mods are not lost --- website/src/middlewares/locals.js | 2 +- website/src/models/group.js | 3 ++- website/src/models/user.js | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/website/src/middlewares/locals.js b/website/src/middlewares/locals.js index f846f2776d..3f4de311b5 100644 --- a/website/src/middlewares/locals.js +++ b/website/src/middlewares/locals.js @@ -43,7 +43,7 @@ module.exports = function(req, res, next) { // Load moment.js language file only when not on static pages language.momentLang = ((!isStaticPage && i18n.momentLangs[language.code]) || undefined); - res.locals.habitrpg = _.merge(env, { + res.locals.habitrpg = _.assign(env, { IS_MOBILE: /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(req.header('User-Agent')), language: language, isStaticPage: isStaticPage, diff --git a/website/src/models/group.js b/website/src/models/group.js index 6159b4de6e..cd669b5efd 100644 --- a/website/src/models/group.js +++ b/website/src/models/group.js @@ -236,7 +236,8 @@ module.exports.tavern = {}; var tavernQ = {_id:'habitrpg','quest.key':{$ne:null}}; process.nextTick(function(){ mongoose.model('Group').findOne(tavernQ,function(err,tavern){ - module.exports.tavern = tavern; + // Using _assign so we don't lose the reference to the exported tavern + _.assign(module.exports.tavern, tavern); }); }) GroupSchema.statics.tavernBoss = function(user,progress) { diff --git a/website/src/models/user.js b/website/src/models/user.js index 2f8da5a0ee..fc52a48f3b 100644 --- a/website/src/models/user.js +++ b/website/src/models/user.js @@ -580,12 +580,13 @@ module.exports.model = mongoose.model("User", UserSchema); // Initially export an empty object so external requires will get // the right object by reference when it's defined later // Otherwise it would remain undefined if requested before the query executes -module.exports.mods = {}; +module.exports.mods = []; mongoose.model("User") .find({'contributor.admin':true}) .sort('-contributor.level -backer.npc profile.name') .select('profile contributor backer') .exec(function(err,mods){ - module.exports.mods = mods + // Using push to maintain the reference to mods + module.exports.mods.push.apply(module.exports.mods, mods); });