diff --git a/src/AdminCommands.py b/src/AdminCommands.py index 6c0f26d39..b9480e3cd 100755 --- a/src/AdminCommands.py +++ b/src/AdminCommands.py @@ -159,11 +159,16 @@ class AdminCommands(privmsgs.CapabilityCheckingPrivmsg): try: id = ircdb.users.getUserId(name) user = ircdb.users.getUser(id) + except KeyError: + irc.error(msg, conf.replyNoUser) + return + try: user.removeCapability(capability) ircdb.users.setUser(id, user) irc.reply(msg, conf.replySuccess) except KeyError: - irc.error(msg, conf.replyNoUser) + irc.error(msg, 'That user doesn\'t have that capability.') + return else: s = 'You can\'t remove capabilities you don\'t have.' irc.error(msg, s) diff --git a/test/test_AdminCommands.py b/test/test_AdminCommands.py index 8f5c380a2..b856cfa5e 100644 --- a/test/test_AdminCommands.py +++ b/test/test_AdminCommands.py @@ -39,6 +39,11 @@ class AdminCommandsTestCase(PluginTestCase, PluginDocumentation): def testAddcapability(self): self.assertError('addcapability sdlkfj foo') + (id, u) = ircdb.users.newUser() + u.name = 'foo' + ircdb.users.setUser(id, u) + self.assertError('removecapability foo bar') + self.assertNotRegexp('removecapability foo bar', 'find') def testRemoveCapability(self): self.assertError('removecapability alsdfkjasd foo')