v1.18.x
barisusakli 11 years ago
parent d0d1ebb28c
commit c58712e2a9

@ -73,6 +73,22 @@ define('forum/admin/users', function() {
unselectAll();
});
$('.reset-lockout').on('click', function() {
var uids = getSelectedUids();
if (!uids.length) {
return;
}
socket.emit('admin.user.resetLockouts', uids, function(err) {
if (err) {
return app.alertError(err.message);
}
app.alertSuccess('Lockout(s) reset!');
});
unselectAll();
});
$('.admin-user').on('click', function() {
var uids = getSelectedUids();
if (!uids.length) {

@ -88,6 +88,14 @@ User.banUser = function(uid, callback) {
});
};
User.resetLockouts = function(socket, uids, callback) {
if (!Array.isArray(uids)) {
return callback(new Error('[[error:invalid-data]]'));
}
async.each(uids, user.auth.resetLockout, callback);
};
User.deleteUsers = function(socket, uids, callback) {
if(!Array.isArray(uids)) {
return callback(new Error('[[error:invalid-data]]'));

@ -1,6 +1,7 @@
'use strict';
var db = require('../database'),
var async = require('async'),
db = require('../database'),
meta = require('../meta');
module.exports = function(User) {
@ -42,4 +43,11 @@ module.exports = function(User) {
User.auth.clearLoginAttempts = function(uid) {
db.delete('loginAttempts:' + uid);
};
User.auth.resetLockout = function(uid, callback) {
async.parallel([
async.apply(db.delete, 'loginAttemps:' + uid),
async.apply(db.delete, 'lockout:' + uid)
], callback);
}
};

@ -88,10 +88,8 @@ var async = require('async'),
db.deleteObjectField('reset:uid', code);
db.deleteObjectField('reset:expiry', code);
db.delete('lockout:' + uid);
user.auth.clearLoginAttempts(uid);
callback();
user.auth.resetLockout(uid, callback);
});
});
});

Loading…
Cancel
Save