From 7c5dfc8d51efe4df4e67f86f33c489a320fcb8f9 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 31 Jul 2014 21:06:23 -0700 Subject: Move coffee files to src/ folder --- src/routes/users.coffee | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 src/routes/users.coffee (limited to 'src/routes/users.coffee') diff --git a/src/routes/users.coffee b/src/routes/users.coffee new file mode 100644 index 00000000..db4dde03 --- /dev/null +++ b/src/routes/users.coffee @@ -0,0 +1,98 @@ +db = require("../redis") +bcrypt = require('bcrypt') + +module.exports = (sessions) -> + exists: (req, res) -> + db.hgetall("user:"+req.params.user, (err, obj) -> + if obj? then res.write('true') else res.write('false') + res.end() + ) + + json: (req, res) -> + db.hgetall("user:"+req.params.user, (err, obj) -> + delete obj['password'] + res.writeHead(200, {"Content-Type": "application/json"}); + res.write(JSON.stringify(obj)) + res.end() + ) + + index: (req, res) -> + return + db.keys('*', (err, obj) -> + res.write(JSON.stringify(obj)) + res.end() + ) + + list: (req, res) -> + res.render('users/index', + layout: 'layout' + ) + + show: (req, res) -> + db.hgetall("user:"+req.params.user, (err, obj) -> + if obj + res.render('calculator/show', + user: req.params.user, + layout: 'layout' + ) + else + res.render('sessions/new', + notice: true + ) + ) + + new: (req, res) -> + res.render('users/new', + js: (-> global.js), + css: (-> global.css) + ) + + create: (req, res) -> + errormsg = "" + userkey = "user:"+req.body.username + db.hgetall(userkey, (err, obj) -> + if obj + res.redirect(req.body.username) + else + if req.body.confirm != req.body.password + errormsg += "Passwords must match" + return res.render('users/new', + js: (-> global.js), + css: (-> global.css), + error: errormsg + ) + + bcrypt.hash(req.body.password, 12, (err, hash) -> + db.sadd("users",userkey) + db.hmset(userkey, + username: req.body.username, + password: hash, + email: req.body.email + , -> + req.headers['referer'] = "/#{req.body.username}/edit" + sessions.create(req, res) + ) + ) + ) + + edit: (req, res) -> + res.render('calculator/setup', + user: req.params.user, + layout: 'layout' + ) + + update: (req, res) -> + return unless req.params.user is req.user.username or + req.user.username is 'admin' or req.user.username is 'ben' + if req.body.password is '' + delete req.body.password + db.hmset("user:"+req.params.user, req.body, -> + if not req.body.password? + res.redirect("/#{req.params.user}") + else + bcrypt.hash(req.body.password, 12, (err, hash) -> + db.hmset("user:"+req.params.user,password: hash, -> + res.redirect("/#{req.params.user}") + ) + ) + ) -- cgit v1.2.3