From aa33c86af09afc524833e4ff5f5764c2c3be553c Mon Sep 17 00:00:00 2001 From: marzavec Date: Tue, 13 Mar 2018 23:22:23 -0700 Subject: Added unban by hash --- server/src/commands/mod/ban.js | 5 +++-- server/src/commands/mod/unban.js | 38 +++++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 19 deletions(-) (limited to 'server/src/commands') diff --git a/server/src/commands/mod/ban.js b/server/src/commands/mod/ban.js index 5ee77b6..19f297a 100644 --- a/server/src/commands/mod/ban.js +++ b/server/src/commands/mod/ban.js @@ -38,7 +38,8 @@ exports.run = async (core, server, socket, data) => { } // TODO unban by hash - server._police.arrest(badClient.remoteAddress); + let clientHash = server.getSocketHash(badClient); + server._police.arrest(badClient.remoteAddress, clientHash); console.log(`${socket.nick} [${socket.trip}] banned ${targetNick} in ${socket.channel}`); @@ -49,7 +50,7 @@ exports.run = async (core, server, socket, data) => { server.broadcast({ cmd: 'info', - text: `${socket.nick} banned ${targetNick} in ${socket.channel}, userhash: ${server.getSocketHash(badClient)}` + text: `${socket.nick} banned ${targetNick} in ${socket.channel}, userhash: ${clientHash}` }, { uType: 'mod' }); badClient.close(); diff --git a/server/src/commands/mod/unban.js b/server/src/commands/mod/unban.js index ee028d2..2406644 100644 --- a/server/src/commands/mod/unban.js +++ b/server/src/commands/mod/unban.js @@ -10,44 +10,48 @@ exports.run = async (core, server, socket, data) => { return; } - if (typeof data.ip !== 'string') { + if (typeof data.ip !== 'string' && typeof data.hash !== 'string') { + server.reply({ + cmd: 'warn', + text: "hash:'targethash' or ip:'1.2.3.4' is required" + }, socket); + return; } - let ip = data.ip; - let hash = data.hash; // TODO unban by hash + let mode, target; - // TODO unban by hash - let recordFound = server._police.pardon(data.ip); + if (typeof data.ip === 'string') { + mode = 'ip'; + target = data.ip; + } else { + mode = 'hash'; + target = data.hash; + } - if (!recordFound) { - server.reply({ - cmd: 'warn', - text: 'Could not find target in records' - }, socket); + server._police.pardon(target); - return; + if (mode === 'ip') { + target = server.getSocketHash(target); } - console.log(`${socket.nick} [${socket.trip}] unbanned ${/*hash || */ip} in ${socket.channel}`); + console.log(`${socket.nick} [${socket.trip}] unbanned ${target} in ${socket.channel}`); server.reply({ cmd: 'info', - text: `${socket.nick} unbanned a userhash: ${server.getSocketHash(ip)}` + text: `Unbanned ${target}` }, socket); server.broadcast({ cmd: 'info', - text: `${socket.nick} unbanned a userhash: ${server.getSocketHash(ip)}` + text: `${socket.nick} unbanned: ${target}` }, { uType: 'mod' }); core.managers.stats.decrement('users-banned'); }; -exports.requiredData = ['ip']; - exports.info = { name: 'unban', - usage: 'unban {ip}', + usage: 'unban {[ip || hash]}', description: 'Removes target ip from the ratelimiter' }; -- cgit v1.2.1