diff options
Diffstat (limited to 'server/lib')
| -rw-r--r-- | server/lib/middleware.js | 25 | ||||
| -rw-r--r-- | server/lib/views.js | 26 |
2 files changed, 48 insertions, 3 deletions
diff --git a/server/lib/middleware.js b/server/lib/middleware.js index c74c496..0bc3f7a 100644 --- a/server/lib/middleware.js +++ b/server/lib/middleware.js @@ -4,7 +4,8 @@ var passport = require('passport'), _ = require('lodash'), config = require('../../config.json'), - User = require('./schemas/User'); + User = require('./schemas/User'), + Project = require('./schemas/Project'); var middleware = { @@ -41,6 +42,28 @@ var middleware = { 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 diff --git a/server/lib/views.js b/server/lib/views.js index bcb0e90..000ff4d 100644 --- a/server/lib/views.js +++ b/server/lib/views.js @@ -6,7 +6,8 @@ var User = require('./schemas/User'), config = require('../../config'), marked = require('marked'), util = require('./util'), - _ = require('lodash'); + _ = require('lodash'), + moment = require('moment'); marked.setOptions({ renderer: new marked.Renderer(), @@ -19,7 +20,28 @@ marked.setOptions({ var views = {} views.editor = function (req, res) { - res.render('editor') + if (! req.user && ! req.project) { + res.redirect('/') + } + else if (! req.user || (req.project && String(req.user._id) !== String(req.project.user_id))) { + User.findOne({ _id: req.project.user_id }, function(err, user) { + if (err || ! user) { + console.error(err) + res.redirect('/') + return + } + res.render('reader', { + name: util.sanitize(req.project.name), + description: util.sanitize(req.project.description), + date: moment(req.project.updated_at).format("M/DD/YYYY"), + author: user.displayName, + authorlink: "/profile/" + user.username, + }) + }) + } + else { + res.render('editor') + } } views.builder = function (req, res) { |
