aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/routes/sessions.coffee5
-rw-r--r--src/routes/users.coffee84
2 files changed, 48 insertions, 41 deletions
diff --git a/src/routes/sessions.coffee b/src/routes/sessions.coffee
index 30d3cdef..5b1d9f06 100644
--- a/src/routes/sessions.coffee
+++ b/src/routes/sessions.coffee
@@ -21,7 +21,10 @@ module.exports = (passport) ->
if (err)
return next(err)
- url = req.session.redirect if req.session.redirect?
+ re = new RegExp(user.username, 'g')
+ if req.session.redirect? and re.test(req.session.redirect)
+ url = req.session.redirect
+
url ?= "/#{user.username}"
delete req.session.redirect
return res.redirect(url)
diff --git a/src/routes/users.coffee b/src/routes/users.coffee
index 91654391..dc22303d 100644
--- a/src/routes/users.coffee
+++ b/src/routes/users.coffee
@@ -56,53 +56,57 @@ module.exports = (sessions) ->
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',
- layout: 'layout',
- js: (-> global.js),
- css: (-> global.css),
- error: errormsg
- )
+ errormsg += "Username exists"
- 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.session.redirect = "/#{req.body.username}/edit"
- sessions.create(req, res)
- )
+ if req.body.confirm != req.body.password
+ errormsg += "Passwords must match"
+
+ if errormsg
+ return res.render('users/new',
+ layout: 'layout',
+ js: (-> global.js),
+ css: (-> global.css),
+ error: errormsg
)
- require('crypto').randomBytes(48, (ex, buf) ->
- token = buf.toString('base64').replace(/\//g,'').replace(/\+/g,'')
- db.set(token, req.body.username)
- url = "#{req.protocol}://#{req.hostname}:3000/verify/#{token}"
+ 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,
+ pubkey: req.body.pubkey,
+ privkey: req.body.privkey
+ , ->
+ req.session.redirect = "/#{req.body.username}/edit"
+ sessions.create(req, res)
+ )
+ )
+
+ require('crypto').randomBytes(48, (ex, buf) ->
+ token = buf.toString('base64').replace(/\//g,'').replace(/\+/g,'')
+ db.set(token, req.body.username)
+ url = "#{req.protocol}://#{req.hostname}:3000/verify/#{token}"
- res.render('users/welcome',
- user: req.params.user,
- layout: 'mail',
- url: url,
- js: (-> global.js),
- css: (-> global.css),
- (err, html) ->
- sendgrid = require('sendgrid')(config.sendgrid_user, config.sendgrid_password)
+ res.render('users/welcome',
+ user: req.params.user,
+ layout: 'mail',
+ url: url,
+ js: (-> global.js),
+ css: (-> global.css),
+ (err, html) ->
+ sendgrid = require('sendgrid')(config.sendgrid_user, config.sendgrid_password)
- email = new sendgrid.Email(
- to: req.body.email
- subject: 'Welcome to CoinOS'
- html: html
- )
+ email = new sendgrid.Email(
+ to: req.body.email
+ subject: 'Welcome to CoinOS'
+ html: html
+ )
- sendgrid.send(email)
- )
+ sendgrid.send(email)
)
+ )
)
edit: (req, res) ->