diff options
| author | Adam Soltys <[email protected]> | 2016-02-14 18:11:47 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2016-02-14 18:11:54 -0800 |
| commit | 15cf6c4ea593db5b10f7f7024f20c6199c62f621 (patch) | |
| tree | 72a6c3b0c608ecccaf68545933221e92ecc89087 | |
| parent | d270e7367c6968f16e39392f01b96a219b0ab047 (diff) | |
| download | coinos-server-15cf6c4ea593db5b10f7f7024f20c6199c62f621.tar.gz coinos-server-15cf6c4ea593db5b10f7f7024f20c6199c62f621.zip | |
Make usernames case insensitive (closes #14)
| -rw-r--r-- | passport.js | 8 | ||||
| -rw-r--r-- | routes/users.js | 26 | ||||
| -rw-r--r-- | src/passport.coffee | 8 | ||||
| -rw-r--r-- | src/routes/users.coffee | 26 |
4 files changed, 34 insertions, 34 deletions
diff --git a/passport.js b/passport.js index b8b266d1..39874bd1 100644 --- a/passport.js +++ b/passport.js @@ -10,24 +10,24 @@ LocalStrategy = require('passport-local').Strategy; passport.serializeUser(function(user, done) { - return done(null, user.username); + return done(null, user.username.toLowerCase()); }); passport.deserializeUser(function(username, done) { - return db.hgetall("user:" + username, function(err, user) { + return db.hgetall("user:" + username.toLowerCase(), function(err, user) { return done(null, user); }); }); passport.use(new LocalStrategy(function(username, password, done) { - return db.hget("user:" + username, 'password', function(err, hash) { + return db.hget("user:" + username.toLowerCase(), 'password', function(err, hash) { if (err) { return done(err); } if (hash) { return bcrypt.compare(password, hash, function(err, match) { if (match) { - return db.hgetall("user:" + username, function(err, user) { + return db.hgetall("user:" + username.toLowerCase(), function(err, user) { return done(null, user); }); } else { diff --git a/routes/users.js b/routes/users.js index 0eb97557..7063601e 100644 --- a/routes/users.js +++ b/routes/users.js @@ -14,7 +14,7 @@ module.exports = function(sessions) { return { exists: function(req, res) { - return db.hgetall("user:" + req.params.user, function(err, obj) { + return db.hgetall("user:" + req.params.user.toLowerCase(), function(err, obj) { if (obj != null) { res.write('true'); } else { @@ -25,7 +25,7 @@ }, json: function(req, res) { return db.llen("" + req.params.user + ":transactions", function(err, len) { - return db.hgetall("user:" + req.params.user, function(err, obj) { + return db.hgetall("user:" + (req.params.user.toLowerCase()), function(err, obj) { delete obj['password']; obj['index'] = len; res.writeHead(200, { @@ -37,11 +37,11 @@ }); }, show: function(req, res) { - return db.hgetall("user:" + req.params.user, function(err, obj) { + return db.hgetall("user:" + req.params.user.toLowerCase(), function(err, obj) { var ext, options, path; if (obj) { options = { - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'layout', navigation: true, js: (function() { @@ -140,7 +140,7 @@ } url = "" + req.protocol + "://" + host + "/verify/" + token; return res.render('users/welcome', { - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'mail', url: url, privkey: req.body.privkey, @@ -166,7 +166,7 @@ }, edit: function(req, res) { return res.render('users/edit', { - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'layout', navigation: true, js: (function() { @@ -179,7 +179,7 @@ }, profile: function(req, res) { return res.render('users/profile', { - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'layout', navigation: true, js: (function() { @@ -194,17 +194,17 @@ if (req.body.password === '') { delete req.body.password; } - db.hmset("user:" + req.params.user, req.body, function() { + db.hmset("user:" + req.params.user.toLowerCase(), req.body, function() { if (req.body.password != null) { return bcrypt.hash(req.body.password, 12, function(err, hash) { - return db.hmset("user:" + req.params.user, { + return db.hmset("user:" + (req.params.user.toLowerCase()), { password: hash }, function() { if (req.xhr) { res.send({}); return res.end(); } else { - return res.redirect("/" + req.params.user); + return res.redirect("/" + (req.params.user.toLowerCase())); } }); }); @@ -213,13 +213,13 @@ res.send({}); return res.end(); } else { - return res.redirect("/" + req.params.user); + return res.redirect("/" + (req.params.user.toLowerCase())); } } }); if (process.env.NODE_ENV === 'production' && (req.body.privkey != null) && req.body.privkey !== '' && req.body.email !== '') { return res.render('users/key', { - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'mail', key: req.body.privkey, js: (function() { @@ -255,7 +255,7 @@ }, wallet: function(req, res) { return res.render('users/wallet', { - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'layout', navigation: true, js: (function() { diff --git a/src/passport.coffee b/src/passport.coffee index aba6ff53..7fd99668 100644 --- a/src/passport.coffee +++ b/src/passport.coffee @@ -5,23 +5,23 @@ passport = require('passport') LocalStrategy = require('passport-local').Strategy passport.serializeUser((user, done) -> - done(null, user.username) + done(null, user.username.toLowerCase()) ) passport.deserializeUser((username, done) -> - db.hgetall("user:"+username, (err, user) -> + db.hgetall("user:"+username.toLowerCase(), (err, user) -> return done(null, user) ) ) passport.use(new LocalStrategy( (username, password, done) -> - db.hget("user:"+username, 'password', (err, hash) -> + db.hget("user:"+username.toLowerCase(), 'password', (err, hash) -> return done(err) if err if hash bcrypt.compare(password, hash, (err, match) -> if match - db.hgetall("user:"+username, (err, user) -> + db.hgetall("user:"+username.toLowerCase(), (err, user) -> return done(null, user) ) else diff --git a/src/routes/users.coffee b/src/routes/users.coffee index 4ae1200e..d84728ea 100644 --- a/src/routes/users.coffee +++ b/src/routes/users.coffee @@ -6,14 +6,14 @@ request = require('request') module.exports = (sessions) -> exists: (req, res) -> - db.hgetall("user:"+req.params.user, (err, obj) -> + db.hgetall("user:"+req.params.user.toLowerCase(), (err, obj) -> if obj? then res.write('true') else res.write('false') res.end() ) json: (req, res) -> db.llen("#{req.params.user}:transactions", (err, len) -> - db.hgetall("user:#{req.params.user}", (err, obj) -> + db.hgetall("user:#{req.params.user.toLowerCase()}", (err, obj) -> delete obj['password'] obj['index'] = len res.writeHead(200, {"Content-Type": "application/json"}); @@ -23,10 +23,10 @@ module.exports = (sessions) -> ) show: (req, res) -> - db.hgetall("user:"+req.params.user, (err, obj) -> + db.hgetall("user:"+req.params.user.toLowerCase(), (err, obj) -> if obj options = - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'layout', navigation: true, js: (-> global.js), @@ -104,7 +104,7 @@ module.exports = (sessions) -> url = "#{req.protocol}://#{host}/verify/#{token}" res.render('users/welcome', - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'mail', url: url, privkey: req.body.privkey, @@ -127,7 +127,7 @@ module.exports = (sessions) -> edit: (req, res) -> res.render('users/edit', - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'layout', navigation: true, js: (-> global.js), @@ -136,7 +136,7 @@ module.exports = (sessions) -> profile: (req, res) -> res.render('users/profile', - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'layout', navigation: true, js: (-> global.js), @@ -147,15 +147,15 @@ module.exports = (sessions) -> if req.body.password is '' delete req.body.password - db.hmset("user:"+req.params.user, req.body, -> + db.hmset("user:"+req.params.user.toLowerCase(), req.body, -> if req.body.password? bcrypt.hash(req.body.password, 12, (err, hash) -> - db.hmset("user:#{req.params.user}", password: hash, -> + db.hmset("user:#{req.params.user.toLowerCase()}", password: hash, -> if req.xhr res.send({}) res.end() else - res.redirect("/#{req.params.user}") + res.redirect("/#{req.params.user.toLowerCase()}") ) ) else @@ -163,7 +163,7 @@ module.exports = (sessions) -> res.send({}) res.end() else - res.redirect("/#{req.params.user}") + res.redirect("/#{req.params.user.toLowerCase()}") ) if process.env.NODE_ENV is 'production' and @@ -171,7 +171,7 @@ module.exports = (sessions) -> req.body.privkey != '' and req.body.email != '' res.render('users/key', - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'mail', key: req.body.privkey, js: (-> global.js), @@ -202,7 +202,7 @@ module.exports = (sessions) -> wallet: (req, res) -> res.render('users/wallet', - user: req.params.user, + user: req.params.user.toLowerCase(), layout: 'layout', navigation: true, js: (-> global.js), |
