aboutsummaryrefslogtreecommitdiff
path: root/modules/permissions.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/permissions.py')
-rw-r--r--modules/permissions.py16
1 files changed, 13 insertions, 3 deletions
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", [])