From da7d6a31374e9ca9b6c8a1cef67ec3703a40ba8a Mon Sep 17 00:00:00 2001 From: psychobunny Date: Mon, 17 Mar 2014 15:38:06 -0400 Subject: [PATCH] closes #1175 --- public/language/en_GB/login.json | 2 +- src/routes/authentication.js | 11 ++++++++++- src/user.js | 6 ++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/public/language/en_GB/login.json b/public/language/en_GB/login.json index f2090276a1..9f910e58e4 100644 --- a/public/language/en_GB/login.json +++ b/public/language/en_GB/login.json @@ -1,6 +1,6 @@ { "login": "Login", - "username": "Username", + "username": "Username / Email", "password": "Password", "remember_me": "Remember Me?", "forgot_password": "Forgot Password?", diff --git a/src/routes/authentication.js b/src/routes/authentication.js index 1b35d78d29..ad85141c75 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -134,8 +134,17 @@ } app.post('/logout', logout); - app.post('/login', login); app.post('/register', register); + app.post('/login', function(req, res, next) { + if (req.body.username && utils.isEmailValid(req.body.username)) { + user.getUsernameByEmail(req.body.username, function(err, username) { + req.body.username = username ? username : req.body.username; + login(req, res, next); + }); + } else { + login(req, res, next); + } + }); }); }); }; diff --git a/src/user.js b/src/user.js index 5249a9b4e0..6d72f43020 100644 --- a/src/user.js +++ b/src/user.js @@ -412,6 +412,12 @@ var bcrypt = require('bcryptjs'), db.getObjectField('email:uid', email, callback); }; + User.getUsernameByEmail = function(email, callback) { + db.getObjectField('email:uid', email, function(err, uid) { + User.getUserField(uid, 'username', callback); + }); + }; + User.isModerator = function(uid, cid, callback) { groups.isMemberByGroupName(uid, 'cid:' + cid + ':privileges:mods', callback); };