From ba5e1eaa4f0a0219a6f452ebab24e7ceb33d11ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 13 Apr 2019 05:04:06 -0400 Subject: [PATCH] feat: #7527 --- src/events.js | 2 ++ src/socket.io/admin/user.js | 24 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/events.js b/src/events.js index f6fe006d02..1c6aeae09c 100644 --- a/src/events.js +++ b/src/events.js @@ -30,6 +30,8 @@ events.types = [ 'topic-purge', 'topic-rename', 'password-reset', + 'user-makeAdmin', + 'user-removeAdmin', 'user-ban', 'user-unban', 'user-delete', diff --git a/src/socket.io/admin/user.js b/src/socket.io/admin/user.js index 02ade56a89..87b6b798ca 100644 --- a/src/socket.io/admin/user.js +++ b/src/socket.io/admin/user.js @@ -28,8 +28,20 @@ User.makeAdmins = function (socket, uids, callback) { } } - async.each(uids, function (uid, next) { - groups.join('administrators', uid, next); + async.eachSeries(uids, function (uid, next) { + async.waterfall([ + function (next) { + groups.join('administrators', uid, next); + }, + function (next) { + events.log({ + type: 'user-makeAdmin', + uid: socket.uid, + targetUid: uid, + ip: socket.ip, + }, next); + }, + ], next); }, next); }, ], callback); @@ -52,6 +64,14 @@ User.removeAdmins = function (socket, uids, callback) { groups.leave('administrators', uid, next); }, + function (next) { + events.log({ + type: 'user-removeAdmin', + uid: socket.uid, + targetUid: uid, + ip: socket.ip, + }, next); + }, ], next); }, callback); };