/* jshint node: true */ var passport = require('passport'), _ = require('lodash'), config = require('../../config.json'), User = require('./schemas/User'), Project = require('./schemas/Project'); 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 next() }, ensureProject: function (req, res, next) { if (req.params.slug) { Project.findOne({ slug: req.params.slug }, function(err, project){ if (err) { console.error(err) req.project = null } else if (! project) { req.project = null } else { req.project = project } next() }) } else { req.project = null next() } } } module.exports = middleware