allow changing username if user has no password set, ie sso login

v1.18.x
barisusakli 9 years ago
parent 0210c033ee
commit 28ae101d90

@ -25,12 +25,9 @@ module.exports = function(SocketUser) {
function isAdminOrSelfAndPasswordMatch(uid, data, callback) { function isAdminOrSelfAndPasswordMatch(uid, data, callback) {
async.parallel({ async.parallel({
isAdmin: function(next) { isAdmin: async.apply(user.isAdministrator, uid),
user.isAdministrator(uid, next); hasPassword: async.apply(user.hasPassword, data.uid),
}, passwordMatch: async.apply(user.isPasswordCorrect, data.uid, data.password)
passwordMatch: function(next) {
user.isPasswordCorrect(data.uid, data.password, next);
}
}, function(err, results) { }, function(err, results) {
if (err) { if (err) {
return callback(err); return callback(err);
@ -41,7 +38,7 @@ module.exports = function(SocketUser) {
return callback(new Error('[[error:no-privileges]]')); return callback(new Error('[[error:no-privileges]]'));
} }
if (self && !results.passwordMatch) { if (self && results.hasPassword && !results.passwordMatch) {
return callback(new Error('[[error:invalid-password]]')); return callback(new Error('[[error:invalid-password]]'));
} }

@ -25,4 +25,10 @@ module.exports = function(User) {
}); });
}; };
User.hasPassword = function(uid, callback) {
db.getObjectField('user:' + uid, 'password', function(err, hashedPassword) {
callback(err, !!hashedPassword);
});
};
}; };
Loading…
Cancel
Save