# HG changeset patch # User Marcin Kuzminski # Date 2018-11-12 11:10:07 # Node ID 1ac5d1f801c912a171d7721ef3c706b2da2458af # Parent 208856fa778d4c044efbeb4cc8731d527cef06bd hooks: use safer way to validate kwargs. If rcextensions are disable we shouldn't do any actions. diff --git a/rhodecode/lib/hooks_base.py b/rhodecode/lib/hooks_base.py --- a/rhodecode/lib/hooks_base.py +++ b/rhodecode/lib/hooks_base.py @@ -339,7 +339,12 @@ class ExtensionCallback(object): self._kwargs_keys = set(kwargs_keys) def __call__(self, *args, **kwargs): - log.debug('Calling extension callback for %s', self._hook_name) + log.debug('Calling extension callback for `%s`', self._hook_name) + callback = self._get_callback() + if not callback: + log.debug('extension callback `%s` not found, skipping...', self._hook_name) + return + kwargs_to_pass = {} for key in self._kwargs_keys: try: @@ -349,16 +354,11 @@ class ExtensionCallback(object): key, self._kwargs_keys) raise - # backward compat for removed api_key for old hooks. THis was it works + # backward compat for removed api_key for old hooks. This was it works # with older rcextensions that require api_key present if self._hook_name in ['CREATE_USER_HOOK', 'DELETE_USER_HOOK']: kwargs_to_pass['api_key'] = '_DEPRECATED_' - - callback = self._get_callback() - if callback: - return callback(**kwargs_to_pass) - else: - log.debug('extensions callback not found skipping...') + return callback(**kwargs_to_pass) def is_active(self): return hasattr(rhodecode.EXTENSIONS, self._hook_name)