3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-23 12:29:27 +01:00

Ensure admins actually have rights in $channel to use $command

This commit is contained in:
Pragmatic Software 2017-11-03 12:28:41 -07:00
parent 9e24f43ff7
commit 1172d7b262

View File

@ -82,6 +82,10 @@ sub ban_user {
my $botnick = $self->{pbot}->{registry}->get_value('irc', 'botnick'); my $botnick = $self->{pbot}->{registry}->get_value('irc', 'botnick');
return "I don't think so." if $target =~ /^\Q$botnick\E!/i; return "I don't think so." if $target =~ /^\Q$botnick\E!/i;
if (not $self->{pbot}->{admins}->loggedin($channel, "$nick!$user\@$host")) {
return "/msg $nick You are not an admin for $channel.";
}
$self->{pbot}->{chanops}->ban_user_timed($target, $channel, $length); $self->{pbot}->{chanops}->ban_user_timed($target, $channel, $length);
if ($length > 0) { if ($length > 0) {
@ -112,6 +116,10 @@ sub unban_user {
return "/msg $nick Usage for /msg: unban <nick/mask> <channel>" if $channel !~ /^#/; return "/msg $nick Usage for /msg: unban <nick/mask> <channel>" if $channel !~ /^#/;
if (not $self->{pbot}->{admins}->loggedin($channel, "$nick!$user\@$host")) {
return "/msg $nick You are not an admin for $channel.";
}
$self->{pbot}->{chanops}->unban_user($target, $channel, 1); $self->{pbot}->{chanops}->unban_user($target, $channel, 1);
return "/msg $nick $target has been unbanned from $channel."; return "/msg $nick $target has been unbanned from $channel.";
} }
@ -157,6 +165,10 @@ sub mute_user {
my $botnick = $self->{pbot}->{registry}->get_value('irc', 'botnick'); my $botnick = $self->{pbot}->{registry}->get_value('irc', 'botnick');
return "I don't think so." if $target =~ /^\Q$botnick\E!/i; return "I don't think so." if $target =~ /^\Q$botnick\E!/i;
if (not $self->{pbot}->{admins}->loggedin($channel, "$nick!$user\@$host")) {
return "/msg $nick You are not an admin for $channel.";
}
$self->{pbot}->{chanops}->mute_user_timed($target, $channel, $length); $self->{pbot}->{chanops}->mute_user_timed($target, $channel, $length);
if ($length > 0) { if ($length > 0) {
@ -187,6 +199,10 @@ sub unmute_user {
return "/msg $nick Usage for /msg: unmute <mask> <channel>" if $channel !~ /^#/; return "/msg $nick Usage for /msg: unmute <mask> <channel>" if $channel !~ /^#/;
if (not $self->{pbot}->{admins}->loggedin($channel, "$nick!$user\@$host")) {
return "/msg $nick You are not an admin for $channel.";
}
$self->{pbot}->{chanops}->unmute_user($target, $channel, 1); $self->{pbot}->{chanops}->unmute_user($target, $channel, 1);
return "/msg $nick $target has been unmuted in $channel."; return "/msg $nick $target has been unmuted in $channel.";
} }
@ -230,6 +246,10 @@ sub kick_user {
} }
} }
if (not $self->{pbot}->{admins}->loggedin($channel, "$nick!$user\@$host")) {
return "/msg $nick You are not an admin for $channel.";
}
$self->{pbot}->{chanops}->add_op_command($channel, "kick $channel $victim $reason"); $self->{pbot}->{chanops}->add_op_command($channel, "kick $channel $victim $reason");
$self->{pbot}->{chanops}->gain_ops($channel); $self->{pbot}->{chanops}->gain_ops($channel);
return ""; return "";