From e281bbd62ba10122333680a14f8743a90c337efe Mon Sep 17 00:00:00 2001 From: Luke Rogers Date: Fri, 2 Aug 2013 11:52:01 +1200 Subject: [PATCH] Changed the permissions config format again! (this might happen a few times, sorry) --- config.default | 16 +++++++++------- plugins/core_sieve.py | 25 +++++++++++++------------ 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/config.default b/config.default index d40bcc0..5fc5ac3 100644 --- a/config.default +++ b/config.default @@ -30,13 +30,15 @@ "twitter_access_secret": "", "wunderground": "" }, - "permission_groups": { - "admins": ["addfactoid", "delfactoid", "ignore", "botcontrol"], - "moderators": ["addfactoid", "delfactoid", "ignore"] - }, - "permission_users": { - "admins": ["examplea!user@example.com", "exampleb!user@example.com"], - "moderators": ["examplec!user@example.com"] + "permissions": { + "admins": { + "perms": ["addfactoid", "delfactoid", "ignore", "botcontrol"], + "users": ["examplea!user@example.com", "exampleb!user@example.com"] + }, + "moderators": { + "perms": ["addfactoid", "delfactoid", "ignore"], + "users": ["examplec!user@example.com"] + } }, plugins": { diff --git a/plugins/core_sieve.py b/plugins/core_sieve.py index 5bb5ffe..ca68d44 100755 --- a/plugins/core_sieve.py +++ b/plugins/core_sieve.py @@ -36,23 +36,23 @@ def sieve_suite(bot, input, func, kind, args): if args.get('permissions', False): - groups = bot.config.get("permission_groups", []) - group_users = bot.config.get("permission_users", []) + groups = bot.config.get("permissions", []) allowed_permissions = args.get('permissions', []) - - allowed_groups = [] # loop over every group - for name, permissions in groups.iteritems(): + for key, value in groups.iteritems(): # loop over every permission the command allows for permission in allowed_permissions: # see if the group has that permission - if permission in permissions: + print value + if permission in value["perms"]: + print "%s in %s" % (permission, value["perms"]) # if so, add the group name to the allowed_groups list - allowed_groups.append(name) + allowed_groups.append(key) + print allowed_groups if not allowed_groups: print "Something is wrong. A hook requires {} but" \ @@ -60,12 +60,13 @@ def sieve_suite(bot, input, func, kind, args): mask = input.mask.lower() - # make all masks lowercase - for group, masks in group_users.iteritems(): - group_users[group] = [_mask.lower() for _mask in masks] - for group in allowed_groups: - for pattern in group_users[group]: + print group + group_users = bot.config.get("permissions", {}).get(group, [])["users"] + print group_users + group_users = [_mask.lower() for _mask in group_users] + for pattern in group_users: + print mask + pattern if fnmatch(mask, pattern): return input