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