From 6ecae3b261900db9c5dfc97b8b2b56b3835a65d9 Mon Sep 17 00:00:00 2001 From: jesopo Date: Tue, 28 Aug 2018 18:16:19 +0100 Subject: [PATCH] Add the ability to only require authentication if your nickname is registered --- modules/coins.py | 4 ++-- modules/permissions.py | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/modules/coins.py b/modules/coins.py index e0c100d1..4fa0377e 100644 --- a/modules/coins.py +++ b/modules/coins.py @@ -41,13 +41,13 @@ class Module(object): self.redeem_coins, help="Redeem free coins") bot.events.on("received.command.flip").hook(self.flip, help="Bet coins on a coin flip", usage= - "heads|tails ", min_args=2, authenticated=True) + "heads|tails ", min_args=2, protect_registered=True) bot.events.on("received.command.sendcoins").hook( self.send, min_args=2, help="Send coins to a user", usage=" ", authenticated=True) bot.events.on("received.command.roulette").hook( self.roulette, min_args=2, help="Spin the roulette wheel", - usage=" ", authenticated=True) + usage=" ", protect_registered=True) now = datetime.datetime.now() until_next_hour = 60-now.second diff --git a/modules/permissions.py b/modules/permissions.py index b2d7c6dc..3baa61e2 100644 --- a/modules/permissions.py +++ b/modules/permissions.py @@ -1,6 +1,9 @@ import base64, os import scrypt +REQUIRES_IDENTIFY = ("You need to be identified to use that command " + "(/msg %s register | /msg %s identify)") + class Module(object): def __init__(self, bot): self.bot = bot @@ -90,8 +93,12 @@ class Module(object): event["stderr"].write("You are not logged in") def preprocess_command(self, event): + authentication = event["user"].get_setting("authentication", None) permission = event["hook"].kwargs.get("permission", None) authenticated = event["hook"].kwargs.get("authenticated", False) + protect_registered = event["hook"].kwargs.get("protect_registered", + False) + if permission: identified = event["user"].identified user_permissions = event["user"].get_setting("permissions", []) @@ -101,9 +108,12 @@ class Module(object): return "You do not have permission to do that" elif authenticated: if not event["user"].identified: - return ("You need to be identified to use that command " - "(/msg %s register | /msg %s identify)" % ( - event["server"].nickname, event["server"].nickname)) + return REQUIRES_IDENTIFY % (event["server"].nickname, + event["server"].nickname) + elif protect_registered: + if authentication and not event["user"].identified: + return REQUIRES_IDENTIFY % (event["server"].nickname, + event["server"].nickname) def my_permissions(self, event): permissions = event["user"].get_setting("permissions", [])