check password validity in user delete socket call

v1.18.x
Julian Lam 7 years ago
parent cb8e62cd7c
commit fb42862ec7

@ -169,10 +169,9 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components'
confirmBtn.html('<i class="fa fa-spinner fa-spin"></i>'); confirmBtn.html('<i class="fa fa-spinner fa-spin"></i>');
confirmBtn.prop('disabled', true); confirmBtn.prop('disabled', true);
socket.emit('user.checkPassword', { socket.emit('user.deleteAccount', {
uid: parseInt(ajaxify.data.uid, 10),
password: $('#confirm-password').val(), password: $('#confirm-password').val(),
}, function (err, ok) { }, function (err) {
function restoreButton() { function restoreButton() {
translator.translate('[[modules:bootbox.confirm]]', function (confirmText) { translator.translate('[[modules:bootbox.confirm]]', function (confirmText) {
confirmBtn.text(confirmText); confirmBtn.text(confirmText);
@ -183,20 +182,11 @@ define('forum/account/edit', ['forum/account/header', 'translator', 'components'
if (err) { if (err) {
restoreButton(); restoreButton();
return app.alertError(err.message); return app.alertError(err.message);
} else if (!ok) {
restoreButton();
return app.alertError('[[error:invalid-password]]');
} }
confirmBtn.html('<i class="fa fa-check"></i>'); confirmBtn.html('<i class="fa fa-check"></i>');
socket.emit('user.deleteAccount', {}, function (err) {
if (err) {
return app.alertError(err.message);
}
window.location.href = config.relative_path + '/'; window.location.href = config.relative_path + '/';
}); });
});
return false; return false;
}); });

@ -36,6 +36,11 @@ SocketUser.deleteAccount = function (socket, data, callback) {
} }
async.waterfall([ async.waterfall([
function (next) {
user.isPasswordCorrect(socket.uid, data.password, function (err, ok) {
next(err || !ok ? new Error('[[error:invalid-password]]') : undefined);
});
},
function (next) { function (next) {
user.isAdministrator(socket.uid, next); user.isAdministrator(socket.uid, next);
}, },
@ -56,7 +61,15 @@ SocketUser.deleteAccount = function (socket, data, callback) {
}); });
next(); next();
}, },
], callback); ], function (err) {
if (err) {
return setTimeout(function () {
callback(err);
}, 2500);
}
callback();
});
}; };
SocketUser.emailExists = function (socket, data, callback) { SocketUser.emailExists = function (socket, data, callback) {

Loading…
Cancel
Save