aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2016-02-14 18:11:47 -0800
committerAdam Soltys <[email protected]>2016-02-14 18:11:54 -0800
commit15cf6c4ea593db5b10f7f7024f20c6199c62f621 (patch)
tree72a6c3b0c608ecccaf68545933221e92ecc89087
parentd270e7367c6968f16e39392f01b96a219b0ab047 (diff)
downloadcoinos-server-15cf6c4ea593db5b10f7f7024f20c6199c62f621.tar.gz
coinos-server-15cf6c4ea593db5b10f7f7024f20c6199c62f621.zip
Make usernames case insensitive (closes #14)
-rw-r--r--passport.js8
-rw-r--r--routes/users.js26
-rw-r--r--src/passport.coffee8
-rw-r--r--src/routes/users.coffee26
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),