From 2c1e5641abe7b0705728b958b945e3e5d6d58e88 Mon Sep 17 00:00:00 2001 From: raylu Date: Tue, 26 Oct 2010 18:42:26 -0400 Subject: [PATCH] Users with h can't kick users with o or h --- handler.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/handler.go b/handler.go index e189599..667e4b0 100644 --- a/handler.go +++ b/handler.go @@ -462,6 +462,12 @@ func kick(conn *irc.Conn, nick *irc.Nick, args, target string) { } split := strings.Split(args, " ", 2) + if n := conn.GetNick(split[0]); n == nil || + (!hasAccess(conn, nick, channel, "o") && hasAccess(conn, n, channel, "oh")) { + // if we only have h, we can't kick people with o or h + return + } + reason := "(" + nick.Nick + ")" if len(split) == 2 { reason += " " + split[1] @@ -527,7 +533,8 @@ func kickban(conn *irc.Conn, nick *irc.Nick, args, target string) { split := strings.Split(args, " ", 2) n := conn.GetNick(split[0]) - if n == nil { + if n == nil || + (!hasAccess(conn, nick, channel, "o") && hasAccess(conn, n, channel, "oh")) { return } conn.Mode(channel, "+b *!*@" + n.Host)