summaryrefslogtreecommitdiff
path: root/server/lib/middleware.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/middleware.js')
-rw-r--r--server/lib/middleware.js60
1 files changed, 55 insertions, 5 deletions
diff --git a/server/lib/middleware.js b/server/lib/middleware.js
index 9d09a10..fe4dc49 100644
--- a/server/lib/middleware.js
+++ b/server/lib/middleware.js
@@ -60,20 +60,48 @@ var middleware = {
res.locals.ogUrl = "http://vvalls.com/"
res.locals.ogDescription = "3D gallery space, fully customizable"
res.locals.ogAuthor = "VValls"
- res.locals.plans = plans
+ res.locals.plans = middleware.plans
res.locals.opt = {}
next()
},
ensureUserProjectsCount: function(req, res, next){
- Project.count({ user_id: req.user.id }, function(err, count){
- res.locals.projectCount = count || 0
+ var counts = { stock: 0, basic: 0, pro: 0 }
+ res.locals.projectCounts = counts
+ Project.count({ user_id: req.user.id, layout_type: 0 }, function(err, count){
+ res.locals.projectCounts.stock = count || 0
+ if (req.user.plan_level > 0) { return middleware.ensureBasicProjectsCount(req, res, next) }
+ else next()
+ })
+ },
+ ensureBasicProjectsCount: function(req, res, next){
+ Project.count({ user_id: req.user.id, layout_type: 1 }, function(err, count){
+ res.locals.projectCounts.basic = count || 0
+ if (req.user.plan_level > 1) { return middleware.ensureProProjectsCount(req, res, next) }
+ else next()
+ })
+ },
+ ensureProProjectsCount: function(req, res, next){
+ Project.count({ user_id: req.user.id, layout_type: 2 }, function(err, count){
+ res.locals.projectCounts.pro = count || 0
next()
})
},
+
ensureUserLayoutsCount: function(req, res, next){
- Layout.count({ user_id: req.user.id }, function(err, count){
- res.locals.layoutCount = count || 0
+ var counts = { basic: 0, pro: 0 }
+ res.locals.layoutCounts = counts
+ if (req.user.plan_level == 0) { return next() }
+
+ Layout.count({ user_id: req.user.id, layout_type: 1 }, function(err, count){
+ res.locals.layoutCounts.basic = count || 0
+ if (req.user.plan_level > 1) { return middleware.ensureProLayoutsCount(req, res, next) }
+ else next()
+ })
+ },
+ ensureProLayoutsCount: function(req, res, next){
+ Project.count({ user_id: req.user.id, layout_type: 2 }, function(err, count){
+ res.locals.layoutCounts.pro = count || 0
next()
})
},
@@ -100,6 +128,28 @@ var middleware = {
}
},
+ ensureLayout: function (req, res, next) {
+ if (req.params.slug) {
+ Layout.findOne({ slug: req.params.slug }, function(err, layout){
+ if (err) {
+ console.error(err)
+ req.layout = null
+ }
+ else if (! project) {
+ req.layout = null
+ }
+ else {
+ req.layout = layout
+ }
+ next()
+ })
+ }
+ else {
+ req.layout = null
+ next()
+ }
+ },
+
ensureIsCollaborator: function(req, res, next) {
req.isCollaborator = false
req.isOwner = false