X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=app.js;h=e63aca44b7ec0f35954d6e4106d25a300733e537;hb=b955c65b942d09d24b5c3bed0d755d4f2f8f71f1;hp=914e29b153e990ea2c8c1919061b240628e89632;hpb=298c42e63ae321526693e9ce418c4113af36e025;p=vchess.git diff --git a/app.js b/app.js index 914e29b1..e63aca44 100644 --- a/app.js +++ b/app.js @@ -5,6 +5,7 @@ var cookieParser = require('cookie-parser'); var logger = require('morgan'); var sassMiddleware = require('node-sass-middleware'); var favicon = require('serve-favicon'); +var UserModel = require(path.join(__dirname, "models", "User")); var app = express(); @@ -26,7 +27,7 @@ else } // Allow layout.pug to select the right vue file: -app.locals.development = app.get('env') === 'development'; +app.locals.development = (app.get('env') === 'development'); // view engine setup app.set('views', path.join(__dirname, 'views')); @@ -43,6 +44,33 @@ app.use(sassMiddleware({ })); app.use(express.static(path.join(__dirname, 'public'))); +// Before showing any page, check + save credentials +app.use(function(req, res, next) { + req.userId = 0; //means "anonymous" + res.locals.user = { name: "" }; //"anonymous" + if (!req.cookies.token) + return next(); + UserModel.getOne("sessionToken", req.cookies.token, function(err, user) { + if (!!user) + { + req.userId = user.id; + res.locals.user = { + id: user.id, + name: user.name, + email: user.email, + notify: user.notify, + }; + } + else + { + // Token in cookies presumably wrong: erase it + res.clearCookie("token"); + } + next(); + }); +}); + +// Routing const routes = require(path.join(__dirname, "routes", "all")); app.use('/', routes);