diff --git a/earwigbot/commands/access.py b/earwigbot/commands/access.py new file mode 100644 index 0000000..8946f25 --- /dev/null +++ b/earwigbot/commands/access.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2009-2012 Ben Kurtovic +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import random + +from earwigbot.commands import Command + +class Access(Command): + """Control and get info on who can access the bot.""" + name = "access" + commands = ["access", "permission", "permissions", "perm", "perms"] + + def process(self, data): + if not data.args: + self.reply(data, "Subcommands are self, list, add, remove.") + return + db = self.config.irc["permissions"] + if data.args[0] == "self": + self.do_self(data) + elif data.args[0] == "list": + self.do_list(data) + elif data.args[0] == "add": + self.do_add(data) + elif data.args[0] == "remove": + self.do_remove(data) + else: + msg = "Unknown subcommand \x0303{0}\x0F.".format(data.args[0]) + self.reply(data, msg) + + def do_self(self, data): + if db.is_owner(data): + msg = "You are a bot owner (matching rule \x0302{0}\x0F)." + self.reply(data, msg.format(db.is_owner(data))) + elif db.is_admin(data): + msg = "You are a bot admin (matching rule \x0302{0}\x0F)." + self.reply(data, msg.format(db.is_admin(data))) + else: + self.reply(data, "You do not match any bot access rules.") + + def do_list(self, data): + pass + + def do_add(self, data): + pass + + def do_remove(self, data): + pass diff --git a/earwigbot/commands/git_command.py b/earwigbot/commands/git_command.py index b57ee05..cc6cbe5 100644 --- a/earwigbot/commands/git_command.py +++ b/earwigbot/commands/git_command.py @@ -78,7 +78,7 @@ class Git(Command): elif command == "status": self.do_status() else: # They asked us to do something we don't know - msg = "Ynknown argument: \x0303{0}\x0F.".format(data.args[0]) + msg = "Unknown argument: \x0303{0}\x0F.".format(data.args[0]) self.reply(data, msg) def get_repos(self): diff --git a/earwigbot/config/permissions.py b/earwigbot/config/permissions.py index 6375cf3..00c375d 100644 --- a/earwigbot/config/permissions.py +++ b/earwigbot/config/permissions.py @@ -61,7 +61,7 @@ class PermissionsDB(object): try: for rule in self._data[rank]: if user in rule: - return True + return rule except KeyError: return False