diff --git a/website/src/middlewares/locals.js b/website/src/middlewares/locals.js index fa693895c1..1ba502eda8 100644 --- a/website/src/middlewares/locals.js +++ b/website/src/middlewares/locals.js @@ -6,6 +6,8 @@ var i18n = require('../i18n.js'); var buildManifest = require('../libs/buildManifest'); var shared = require('../../../common'); var forceRefresh = require('./forceRefresh'); +var tavern = require('../models/group').tavern; +var mods = require('../models/user').mods; module.exports = function(req, res, next) { var language = _.find(i18n.avalaibleLanguages, {code: req.language}); @@ -14,7 +16,6 @@ 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); - var tavern = require('../models/group').tavern; var envVars = _.pick(nconf.get(), 'NODE_ENV BASE_URL GA_ID STRIPE_PUB_KEY FACEBOOK_KEY AMPLITUDE_KEY'.split(' ')); res.locals.habitrpg = _.merge(envVars, { IS_MOBILE: /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(req.header('User-Agent')), @@ -31,7 +32,7 @@ module.exports = function(req, res, next) { }, siteVersion: forceRefresh.siteVersion, Content: shared.content, - mods: require('../models/user').mods, + mods: mods, tavern: tavern, // for world boss worldDmg: (tavern && tavern.quest && tavern.quest.extra && tavern.quest.extra.worldDmg) || {}, _: _, diff --git a/website/src/models/user.js b/website/src/models/user.js index c06765f805..2f8da5a0ee 100644 --- a/website/src/models/user.js +++ b/website/src/models/user.js @@ -577,6 +577,10 @@ UserSchema.methods.unlink = function(options, cb) { module.exports.schema = UserSchema; 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 = {}; mongoose.model("User") .find({'contributor.admin':true})