aboutsummaryrefslogtreecommitdiff
path: root/src/core_modules/permissions
diff options
context:
space:
mode:
Diffstat (limited to 'src/core_modules/permissions')
-rw-r--r--src/core_modules/permissions/__init__.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/core_modules/permissions/__init__.py b/src/core_modules/permissions/__init__.py
index 0559774c..0c591ebe 100644
--- a/src/core_modules/permissions/__init__.py
+++ b/src/core_modules/permissions/__init__.py
@@ -2,10 +2,11 @@
import base64, binascii, os
import scrypt
-from src import ModuleManager, utils
+from src import EventManager, ModuleManager, utils
HOSTMASKS_SETTING = "hostmask-account"
NO_PERMISSION = "You do not have permission to do that"
+ACCOUNT_TAG = utils.irc.MessageTag("account")
class Module(ModuleManager.BaseModule):
def on_load(self):
@@ -56,6 +57,8 @@ class Module(ModuleManager.BaseModule):
def _has_identified(self, server, user, account):
user._id_override = server.get_user_id(account)
+ self.events.on("internal.identified").call(server=server, user=user,
+ accunt=account)
def _is_identified(self, user):
return not user._id_override == None
def _signout(self, user):
@@ -117,6 +120,13 @@ class Module(ModuleManager.BaseModule):
event["user"].account)
else:
self._set_hostmask(event["server"], event["user"])
+ @utils.hook("received.message.private")
+ @utils.hook("received.message.channel")
+ @utils.kwarg("priority", EventManager.PRIORITY_HIGH)
+ def account_tag(self, event):
+ account = ACCOUNT_TAG.get_value(event["line"].tags)
+ if not account == None:
+ self._has_identified(event["server"], event["user"], account)
def _get_permissions(self, user):
if self._is_identified(user):
@@ -219,8 +229,6 @@ class Module(ModuleManager.BaseModule):
event["stdout"].write("Correct password, you have "
"been identified as %s." % account)
- self.events.on("internal.identified").call(
- user=event["user"])
else:
event["stderr"].write("Incorrect password for '%s'" %
account)
@@ -307,7 +315,7 @@ class Module(ModuleManager.BaseModule):
hostmasks.append(hostmask)
event["user"].set_setting(HOSTMASKS_SETTING, hostmasks)
- hostmask_obj = utils.irc.hostmask_parse(hostmaks)
+ hostmask_obj = utils.irc.hostmask_parse(hostmask)
self._specific_hostmask(event["server"], hostmask_obj, account)
self._add_hostmask(event["server"], hostmask_obj, account)