Add the ability to only require authentication if your nickname is registered

This commit is contained in:
jesopo 2018-08-28 18:16:19 +01:00
parent ab9869aecb
commit 6ecae3b261
2 changed files with 15 additions and 5 deletions

View file

@ -41,13 +41,13 @@ class Module(object):
self.redeem_coins, help="Redeem free coins") self.redeem_coins, help="Redeem free coins")
bot.events.on("received.command.flip").hook(self.flip, bot.events.on("received.command.flip").hook(self.flip,
help="Bet coins on a coin flip", usage= 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( bot.events.on("received.command.sendcoins").hook(
self.send, min_args=2, help="Send coins to a user", self.send, min_args=2, help="Send coins to a user",
usage="<nickname> <amount>", authenticated=True) usage="<nickname> <amount>", authenticated=True)
bot.events.on("received.command.roulette").hook( bot.events.on("received.command.roulette").hook(
self.roulette, min_args=2, help="Spin the roulette wheel", 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() now = datetime.datetime.now()
until_next_hour = 60-now.second until_next_hour = 60-now.second

View file

@ -1,6 +1,9 @@
import base64, os import base64, os
import scrypt import scrypt
REQUIRES_IDENTIFY = ("You need to be identified to use that command "
"(/msg %s register | /msg %s identify)")
class Module(object): class Module(object):
def __init__(self, bot): def __init__(self, bot):
self.bot = bot self.bot = bot
@ -90,8 +93,12 @@ class Module(object):
event["stderr"].write("You are not logged in") event["stderr"].write("You are not logged in")
def preprocess_command(self, event): def preprocess_command(self, event):
authentication = event["user"].get_setting("authentication", None)
permission = event["hook"].kwargs.get("permission", None) permission = event["hook"].kwargs.get("permission", None)
authenticated = event["hook"].kwargs.get("authenticated", False) authenticated = event["hook"].kwargs.get("authenticated", False)
protect_registered = event["hook"].kwargs.get("protect_registered",
False)
if permission: if permission:
identified = event["user"].identified identified = event["user"].identified
user_permissions = event["user"].get_setting("permissions", []) user_permissions = event["user"].get_setting("permissions", [])
@ -101,9 +108,12 @@ class Module(object):
return "You do not have permission to do that" return "You do not have permission to do that"
elif authenticated: elif authenticated:
if not event["user"].identified: if not event["user"].identified:
return ("You need to be identified to use that command " return REQUIRES_IDENTIFY % (event["server"].nickname,
"(/msg %s register | /msg %s identify)" % ( event["server"].nickname)
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): def my_permissions(self, event):
permissions = event["user"].get_setting("permissions", []) permissions = event["user"].get_setting("permissions", [])