From 258e14e20c09bad266a268cefa319c59c098b9ef Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 6 Oct 2014 12:41:56 -0400 Subject: [PATCH] closes #2225 --- public/src/forum/admin/manage/users.js | 23 +++++++++-------------- src/socket.io/admin/user.js | 18 +++++++++++++++--- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/public/src/forum/admin/manage/users.js b/public/src/forum/admin/manage/users.js index 0f8c000b43..bfbbacb666 100644 --- a/public/src/forum/admin/manage/users.js +++ b/public/src/forum/admin/manage/users.js @@ -31,12 +31,16 @@ define('forum/admin/manage/users', ['admin/selectable'], function(selectable) { $('#users-container .users-box .selected').remove(); } - function done(successMessage) { + function done(successMessage, className, flag) { return function(err) { if (err) { return app.alertError(err.message); } app.alertSuccess(successMessage); + if (className) { + update(className, flag); + } + unselectAll(); }; } @@ -48,9 +52,7 @@ define('forum/admin/manage/users', ['admin/selectable'], function(selectable) { bootbox.confirm('Do you really want to ban?', function(confirm) { if (confirm) { - socket.emit('admin.user.banUsers', uids, done('User(s) banned!')); - update('.ban', true); - unselectAll(); + socket.emit('admin.user.banUsers', uids, done('User(s) banned!', '.ban', true)); } }); return false; @@ -62,9 +64,7 @@ define('forum/admin/manage/users', ['admin/selectable'], function(selectable) { return; } - socket.emit('admin.user.unbanUsers', uids, done('User(s) unbanned!')); - update('.ban', false); - unselectAll(); + socket.emit('admin.user.unbanUsers', uids, done('User(s) unbanned!', '.ban', false)); return false; }); @@ -75,7 +75,6 @@ define('forum/admin/manage/users', ['admin/selectable'], function(selectable) { } socket.emit('admin.user.resetLockouts', uids, done('Lockout(s) reset!')); - unselectAll(); return false; }); @@ -88,9 +87,7 @@ define('forum/admin/manage/users', ['admin/selectable'], function(selectable) { if (uids.indexOf(yourid) !== -1) { app.alertError('You can\'t remove yourself as Administrator!'); } else { - socket.emit('admin.user.makeAdmins', uids, done('User(s) are now administrators.')); - update('.administrator', true); - unselectAll(); + socket.emit('admin.user.makeAdmins', uids, done('User(s) are now administrators.', '.administrator', true)); } return false; }); @@ -106,9 +103,7 @@ define('forum/admin/manage/users', ['admin/selectable'], function(selectable) { } else { bootbox.confirm('Do you really want to remove admins?', function(confirm) { if (confirm) { - socket.emit('admin.user.removeAdmins', uids, done('User(s) are no longer administrators.')); - update('.administrator', false); - unselectAll(); + socket.emit('admin.user.removeAdmins', uids, done('User(s) are no longer administrators.', '.administrator', false)); } }); } diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index b861806df1..a9459e81cc 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -14,9 +14,21 @@ User.makeAdmins = function(socket, uids, callback) { return callback(new Error('[[error:invalid-data]]')); } - async.each(uids, function(uid, next) { - groups.join('administrators', uid, next); - }, callback); + user.getMultipleUserFields(uids, ['banned'], function(err, userData) { + if (err) { + return callback(err); + } + + for(var i=0; i