From 14c30c4c054a9f20a4d7374c4d3ebbaa6d9f00cd Mon Sep 17 00:00:00 2001 From: jesopo Date: Tue, 26 Nov 2019 15:32:24 +0000 Subject: add check.command.permission and check.command.authenticated callbacks --- modules/permissions/__init__.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'modules/permissions') diff --git a/modules/permissions/__init__.py b/modules/permissions/__init__.py index 55cc4a68..20ef55dc 100644 --- a/modules/permissions/__init__.py +++ b/modules/permissions/__init__.py @@ -317,6 +317,12 @@ class Module(ModuleManager.BaseModule): else: raise utils.EventError("Unknown subcommand %s" % subcommand) + def _assert(self, allowed): + if allowed: + return utils.consts.PERMISSION_FORCE_SUCCESS, None + else: + return utils.consts.PERMISSION_ERROR, NO_PERMISSION + @utils.hook("preprocess.command") def preprocess_command(self, event): allowed = None @@ -326,9 +332,15 @@ class Module(ModuleManager.BaseModule): allowed = self._has_permission(event["user"], permission) elif authenticated: allowed = self._is_identified(event["user"]) + else: + return - if not allowed == None: - if allowed: - return utils.consts.PERMISSION_FORCE_SUCCESS, None - else: - return utils.consts.PERMISSION_ERROR, NO_PERMISSION + return self._assert(allowed) + + @utils.hook("check.command.permission") + def check_permission(self, event): + return self._assert( + self._has_permission(event["user"], event["request_args"][0])) + @utils.hook("check.command.authenticated") + def check_authenticated(self, event): + return self._assert(self._is_identified(event["user"])) -- cgit v1.3.1-10-gc9f91