mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 20:16:04 +01:00
check password validity in user delete socket call
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user