Save current state (unmerged, broken, not working...)
[vchess.git] / utils / access.js
diff --git a/utils/access.js b/utils/access.js
new file mode 100644 (file)
index 0000000..ca50b1c
--- /dev/null
@@ -0,0 +1,41 @@
+var Access = {};
+
+// Prevent access to "users pages"
+Access.logged = function(req, res, next)
+{
+       if (!req.loggedIn)
+               return res.redirect("/");
+       next();
+};
+
+// Prevent access to "anonymous pages"
+Access.unlogged = function(req, res, next)
+{
+       if (!!req.loggedIn)
+               return res.redirect("/");
+       next();
+};
+
+// Prevent direct access to AJAX results
+Access.ajax = function(req, res, next)
+{
+       if (!req.xhr)
+               return res.json({errmsg: "Unauthorized access"});
+       next();
+}
+
+// Check for errors before callback (continue page loading). TODO: better name.
+Access.checkRequest = function(res, err, out, msg, cb)
+{
+       if (!!err)
+               return res.json(err);
+       if (!out
+               || (Array.isArray(out) && out.length == 0)
+               || (typeof out === "object" && Object.keys(out).length == 0))
+       {
+               return res.json({errmsg: msg});
+       }
+       cb();
+}
+
+module.exports = Access;