diff --git a/src/Admin.py b/src/Admin.py index a36628e11..3614b251e 100755 --- a/src/Admin.py +++ b/src/Admin.py @@ -226,13 +226,16 @@ class Admin(privmsgs.CapabilityCheckingPrivmsg): Re-enables the command for all non-owner users. """ command = privmsgs.getArgs(args) - try: - anticapability = ircdb.makeAntiCapability(command) - except ValueError: - irc.error('%r is not a valid command.' % command) - return - if anticapability in conf.supybot.defaultCapabilities(): - conf.supybot.defaultCapabilities().remove(anticapability) + command = command.lower() + L = [] + for capability in conf.supybot.defaultCapabilities(): + if ircdb.isAntiCapability(capability): + nonAntiCapability = ircdb.unAntiCapability(capability) + if nonAntiCapability.lower() == command: + L.append(capability) + if L: + for capability in L: + conf.supybot.defaultCapabilities().remove(capability) irc.replySuccess() else: irc.error('That command wasn\'t disabled.') diff --git a/test/test_Admin.py b/test/test_Admin.py index bdcc50d53..86a0f19d2 100644 --- a/test/test_Admin.py +++ b/test/test_Admin.py @@ -75,6 +75,10 @@ class AdminTestCase(PluginTestCase, PluginDocumentation): def testEnable(self): self.assertError('enable enable') + def testEnableIsCaseInsensitive(self): + self.assertNotError('disable Foo') + self.assertNotError('enable foo') + def testJoin(self): m = self.getMsg('join #foo') self.assertEqual(m.command, 'JOIN')