summaryrefslogtreecommitdiff
path: root/server/middleware.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/middleware.js')
-rw-r--r--server/middleware.js46
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