diff options
| author | 2019-11-26 15:32:24 +0000 | |
|---|---|---|
| committer | 2019-11-26 15:32:24 +0000 | |
| commit | 14c30c4c054a9f20a4d7374c4d3ebbaa6d9f00cd (patch) | |
| tree | 9e8629fbb5809908a61c7f9095e2017c35cd44b5 /modules/permissions | |
| parent | explicitly use "lxml" for finding page encoding (diff) | |
| signature | ||
add check.command.permission and check.command.authenticated callbacks
Diffstat (limited to 'modules/permissions')
| -rw-r--r-- | modules/permissions/__init__.py | 22 |
1 files changed, 17 insertions, 5 deletions
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"])) |
