diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-06-23 15:32:14 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-06-23 15:32:14 -0400 |
| commit | b97f3d39ac0e387385aae2685dbe830ee53a686c (patch) | |
| tree | 03c8df81703e552851af9e4096ee7deb488f7381 /server | |
| parent | 0b3ccda85b46183bd17cb765ab20bddeeae1a2e9 (diff) | |
| parent | b0ab3271996d542e718e8e3fc910053d60cf81f6 (diff) | |
merge
Diffstat (limited to 'server')
| -rw-r--r-- | server/index.js | 4 | ||||
| -rw-r--r-- | server/lib/api/layouts.js | 1 | ||||
| -rw-r--r-- | server/lib/api/projects.js | 2 | ||||
| -rw-r--r-- | server/lib/middleware.js | 25 | ||||
| -rw-r--r-- | server/lib/views.js | 26 |
5 files changed, 51 insertions, 7 deletions
diff --git a/server/index.js b/server/index.js index 401adfc..6331ca8 100644 --- a/server/index.js +++ b/server/index.js @@ -111,7 +111,7 @@ site.route = function () { app.get('/project', middleware.ensureAuthenticated, views.modal) app.get('/project/new', middleware.ensureAuthenticated, views.modal) app.get('/project/new/:layout', middleware.ensureAuthenticated, views.editor) - app.get('/project/:name', middleware.ensureAuthenticated, views.editor) + app.get('/project/:slug', middleware.ensureProject, views.editor) app.get('/api/layouts', middleware.ensureAuthenticated, api.layouts.index) app.get('/api/layouts/:slug', middleware.ensureAuthenticated, api.layouts.show) @@ -120,7 +120,7 @@ site.route = function () { app.delete('/api/layouts/destroy', middleware.ensureAuthenticated, middleware.ensureIsStaff, api.layouts.destroy) app.get('/api/projects', middleware.ensureAuthenticated, api.projects.index) - app.get('/api/projects/:slug', middleware.ensureAuthenticated, api.projects.show) + app.get('/api/projects/:slug', api.projects.show) app.post('/api/projects/new', middleware.ensureAuthenticated, api.projects.create) app.post('/api/projects/edit', middleware.ensureAuthenticated, api.projects.update) app.delete('/api/projects/destroy', middleware.ensureAuthenticated, api.projects.destroy) diff --git a/server/lib/api/layouts.js b/server/lib/api/layouts.js index 1364426..641e9e2 100644 --- a/server/lib/api/layouts.js +++ b/server/lib/api/layouts.js @@ -93,7 +93,6 @@ var layouts = { destroy: function(req, res){ var _id = req.body._id - console.log(_id) if (! _id || ! _id.length) { res.json({ error: 404 }) return diff --git a/server/lib/api/projects.js b/server/lib/api/projects.js index 32be88c..fc54a5f 100644 --- a/server/lib/api/projects.js +++ b/server/lib/api/projects.js @@ -101,7 +101,7 @@ var projects = { destroy: function(req, res){ var _id = req.body._id - if (! id || ! id.length) { + if (! _id || ! _id.length) { res.json({ error: 404 }) return } 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) { |
