From 93130b27d509194774656b7eee7e4e108dd9d05d Mon Sep 17 00:00:00 2001 From: Baris Soner Usakli Date: Thu, 20 Feb 2014 14:37:10 -0500 Subject: [PATCH 1/2] insert loggedIn before hash' --- public/src/forum/login.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/public/src/forum/login.js b/public/src/forum/login.js index 4c8b3a0128..d99cc5c652 100644 --- a/public/src/forum/login.js +++ b/public/src/forum/login.js @@ -28,10 +28,16 @@ define(function() { app.previousUrl = '/'; } - if(app.previousUrl.indexOf('/reset/') != -1) + if(app.previousUrl.indexOf('/reset/') !== -1) { window.location.replace(RELATIVE_PATH + "/?loggedin"); - else - window.location.replace(app.previousUrl + "?loggedin"); + } else { + var index = app.previousUrl.indexOf('#'); + if(index !== -1) { + window.location.replace(app.previousUrl.slice(0, index) + '?loggedin' + app.previousUrl.slice(index)); + } else { + window.location.replace(app.previousUrl + "?loggedin"); + } + } app.loadConfig(); } From 3be0ad5bce1f114d0221c39bc02f5cb79bdeecff Mon Sep 17 00:00:00 2001 From: Baris Soner Usakli Date: Thu, 20 Feb 2014 14:53:35 -0500 Subject: [PATCH 2/2] wait for user object to be saved before returning from User.create --- src/user.js | 52 ++++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/src/user.js b/src/user.js index 56d60f3c83..abc4aa2ad2 100644 --- a/src/user.js +++ b/src/user.js @@ -108,39 +108,43 @@ var bcrypt = require('bcryptjs'), 'showemail': 0 }; - db.setObject('user:' + uid, userData); + db.setObject('user:' + uid, userData, function(err) { - db.setObjectField('username:uid', userData.username, uid); - db.setObjectField('userslug:uid', userData.userslug, uid); + if(err) { + return callback(err); + } + db.setObjectField('username:uid', userData.username, uid); + db.setObjectField('userslug:uid', userData.userslug, uid); - if (userData.email !== undefined) { - db.setObjectField('email:uid', userData.email, uid); - if (parseInt(uid, 10) !== 1) { - User.email.verify(uid, userData.email); + if (userData.email !== undefined) { + db.setObjectField('email:uid', userData.email, uid); + if (parseInt(uid, 10) !== 1) { + User.email.verify(uid, userData.email); + } } - } - plugins.fireHook('action:user.create', userData); - db.incrObjectField('global', 'userCount'); + plugins.fireHook('action:user.create', userData); + db.incrObjectField('global', 'userCount'); - db.sortedSetAdd('users:joindate', timestamp, uid); - db.sortedSetAdd('users:postcount', 0, uid); - db.sortedSetAdd('users:reputation', 0, uid); + db.sortedSetAdd('users:joindate', timestamp, uid); + db.sortedSetAdd('users:postcount', 0, uid); + db.sortedSetAdd('users:reputation', 0, uid); - groups.joinByGroupName('registered-users', uid); + groups.joinByGroupName('registered-users', uid); - if (password) { - User.hashPassword(password, function(err, hash) { - if(err) { - return callback(err); - } + if (password) { + User.hashPassword(password, function(err, hash) { + if(err) { + return callback(err); + } - User.setUserField(uid, 'password', hash); + User.setUserField(uid, 'password', hash); + callback(null, uid); + }); + } else { callback(null, uid); - }); - } else { - callback(null, uid); - } + } + }); }); }); };