aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2018-08-28 18:16:19 +0100
committerGravatar jesopo2018-08-28 18:16:19 +0100
commit6ecae3b261900db9c5dfc97b8b2b56b3835a65d9 (patch)
treea407613d2ffa5800eebdcea1d75aad00b673c422 /modules
parentChange 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.py4
-rw-r--r--modules/permissions.py16
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", [])