diff options
Diffstat (limited to 'server/middleware.js')
| -rw-r--r-- | server/middleware.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/server/middleware.js b/server/middleware.js new file mode 100644 index 0000000..c13aecb --- /dev/null +++ b/server/middleware.js @@ -0,0 +1,46 @@ + +/* jshint node: true */ + +var passport = require('passport'), + _ = require('lodash'), + config = require('../config.json'); + + +var middleware = { + + enableCORS: function (req, res, next) { + res.header('Access-Control-Allow-Credentials', true); + // TODO Check https vs. http + res.header('Access-Control-Allow-Origin', '*'); + res.header('Access-Control-Allow-Headers', 'X-Requested-With'); + next(); + }, + + ensureAuthenticated: function (req, res, next) { + if (! req.isAuthenticated()) { + req.session.returnTo = req.path; + return res.redirect('/login'); + } + next(); + }, + + ensureIsStaff: function (req, res, next) { + if (! req.user.isStaff) { + return res.redirect('http://' + config.host + '/'); + } + next(); + }, + + ensureLocals: function (req, res, next) { + res.locals.token = req.csrfToken(); + res.locals.logged_in = req.isAuthenticated() + res.locals.user = req.user || {} + res.locals.config = config + res.locals.profile = null + res.locals.opt = {} + next() + }, + +} + +module.exports = middleware |
