Made the bot refuse to kban himself; made him not use a banmask that would ban himself.

This commit is contained in:
Jeremy Fincher 2003-11-13 19:35:24 +00:00
parent 563e5ad2bf
commit 93b16b79c2
2 changed files with 6 additions and 0 deletions

View File

@ -112,6 +112,9 @@ class Channel(callbacks.Privmsg):
"""
channel = privmsgs.getChannel(msg, args)
(bannedNick, length) = privmsgs.getArgs(args, optional=1)
if bannedNick == irc.nick:
irc.error(msg, 'I cowardly refuse to kickban myself.')
return
length = int(length or 0)
try:
bannedHostmask = irc.state.nickToHostmask(bannedNick)
@ -120,6 +123,8 @@ class Channel(callbacks.Privmsg):
return
capability = ircdb.makeChannelCapability(channel, 'op')
banmask = ircutils.banmask(bannedHostmask)
if ircutils.hostmaskPatternEqual(banmask, irc.prefix):
banmask = bannedHostmask
if bannedNick == msg.nick or \
(ircdb.checkCapability(msg.prefix, capability) \
and not ircdb.checkCapability(bannedHostmask, capability)):

View File

@ -69,6 +69,7 @@ class ChannelTestCase(ChannelPluginTestCase, PluginDocumentation):
m = self.getMsg(' ')
self.assertEqual(m, ircmsgs.kick(self.channel, 'foobar', self.nick))
self.assertNotRegexp('kban adlkfajsdlfkjsd', 'KeyError')
self.assertError('kban %s' % self.nick)
def testLobotomizers(self):
self.assertNotError('lobotomize')