diff options
| author | 2018-08-28 18:16:19 +0100 | |
|---|---|---|
| committer | 2018-08-28 18:16:19 +0100 | |
| commit | 6ecae3b261900db9c5dfc97b8b2b56b3835a65d9 (patch) | |
| tree | a407613d2ffa5800eebdcea1d75aad00b673c422 /modules | |
| parent | Change verbose logging to use propper logging system (diff) | |
| signature | ||
Add the ability to only require authentication if your nickname is registered
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/coins.py | 4 | ||||
| -rw-r--r-- | 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 <coin amount>", min_args=2, authenticated=True) + "heads|tails <coin amount>", 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="<nickname> <amount>", authenticated=True) bot.events.on("received.command.roulette").hook( self.roulette, min_args=2, help="Spin the roulette wheel", - usage="<type> <amount>", authenticated=True) + usage="<type> <amount>", 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", []) |
