From 7aafcd7b0846cf991f0df945d3396af4f8d6e07b Mon Sep 17 00:00:00 2001 From: calzoneman Date: Tue, 5 Mar 2013 14:23:02 -0600 Subject: [PATCH] Add ability to kick clients --- chatcommand.js | 21 +++++++++++++++++++++ rank.js | 1 + www/assets/js/functions.js | 9 +++++++++ 3 files changed, 31 insertions(+) diff --git a/chatcommand.js b/chatcommand.js index 93bdea60..9b1d3683 100644 --- a/chatcommand.js +++ b/chatcommand.js @@ -1,8 +1,29 @@ +var Rank = require('./rank.js'); + function handle(chan, user, msg) { if(msg.indexOf("/me ") == 0) chan.sendMessage(user.name, msg.substring(4), "action"); else if(msg.indexOf("/sp ") == 0) chan.sendMessage(user.name, msg.substring(4), "spoiler"); + else if(msg.indexOf("/kick ") == 0) { + handleKick(chan, user, msg.substring(6).split(' ')); + } +} + +function handleKick(chan, user, args) { + if(Rank.hasPermission(user, "kick") && args.length > 0) { + var kickee; + for(var i = 0; i < chan.users.length; i++) { + if(chan.users[i].name == args[0]) { + kickee = chan.users[i]; + break; + } + } + if(kickee) { + kickee.socket.disconnect(); + chan.userLeave(kickee); + } + } } exports.handle = handle; diff --git a/rank.js b/rank.js index 33850c2d..c57391d8 100644 --- a/rank.js +++ b/rank.js @@ -15,6 +15,7 @@ exports.Siteadmin = 255; var permissions = { queue: exports.Moderator, assignLeader: exports.Moderator, + kick: exports.Moderator, search: exports.Guest, chat: exports.Guest, }; diff --git a/www/assets/js/functions.js b/www/assets/js/functions.js index 9aaa0709..ec5f5268 100644 --- a/www/assets/js/functions.js +++ b/www/assets/js/functions.js @@ -65,6 +65,15 @@ function addUserDropdown(entry, name) { }); }); + var kick = $('
  • ').appendTo(ul); + var a = $('').attr("tabindex", "-1").attr("href", "#").appendTo(kick); + a.text("Kick"); + a.click(function() { + socket.emit('chatMsg', { + msg: "/kick " + name + }); + }); + $('
  • ').addClass("divider").appendTo(ul); var promote = $('
  • ').appendTo(ul);