Emergency ip ban

This commit is contained in:
calzoneman 2013-03-23 20:08:35 -05:00
parent 3b335fb381
commit f05a73bdb9
2 changed files with 29 additions and 0 deletions

View file

@ -38,6 +38,8 @@ var Channel = function(name) {
bgimage: ""
};
this.ipbans = [];
// Autolead stuff
// Accumulator
this.i = 0;
@ -265,6 +267,13 @@ Channel.prototype.searchLibrary = function(query) {
// Called when a new user enters the channel
Channel.prototype.userJoin = function(user) {
for(var i = 0; i < this.ipbans.length; i++) {
if(this.ipbans[i] == user.ip) {
user.socket.disconnect();
return;
}
}
user.socket.join(this.name);
// Prevent duplicate login
if(user.name != "") {

View file

@ -14,6 +14,9 @@ function handle(chan, user, msg) {
else if(msg.indexOf("/kick ") == 0) {
handleKick(chan, user, msg.substring(6).split(' '));
}
else if(msg.indexOf("/ban ") == 0) {
handleBan(chan, user, msg.substring(5).split(' '));
}
else if(msg.indexOf("/poll ") == 0) {
handlePoll(chan, user, msg.substring(6));
}
@ -35,6 +38,23 @@ function handleKick(chan, user, args) {
}
}
function handleBan(chan, user, args) {
if(Rank.hasPermission(user, "ipban") && 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) {
chan.ipbans.push(kickee.ip);
kickee.socket.disconnect();
chan.userLeave(kickee);
}
}
}
function handlePoll(chan, user, msg) {
if(Rank.hasPermission(user, "poll")) {
var args = msg.split(',');