diff options
Diffstat (limited to 'src/core_modules/permissions')
| -rw-r--r-- | src/core_modules/permissions/__init__.py | 16 |
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) |
