From 4100b42c1d912a96fcec7cd45794e848c422818d Mon Sep 17 00:00:00 2001 From: Jan Max Meyer Date: Wed, 19 Feb 2025 11:27:16 +0100 Subject: [PATCH] fix: Hotfix for decorator `@skey` introduced by #1394 - `Method.skey` must hold the entire skey_config, as it is used within `Method.__call__` - `Method.additional_descr` should be set to "skey"-name and not "access" (copy&paste bug) --- src/viur/core/decorators.py | 4 ++-- src/viur/core/module.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/viur/core/decorators.py b/src/viur/core/decorators.py index ca2b956f4..40182b762 100644 --- a/src/viur/core/decorators.py +++ b/src/viur/core/decorators.py @@ -227,11 +227,11 @@ def validate(args, kwargs, varargs, varkwargs): def decorator(func): meth = Method.ensure(func) - meth.skey = skey_config["name"] + meth.skey = skey_config meth.guards.append(validate) # extend additional access descr, must be a list to be JSON-serializable - meth.additional_descr["access"] = skey_config["name"] + meth.additional_descr["skey"] = skey_config["name"] return meth diff --git a/src/viur/core/module.py b/src/viur/core/module.py index 52fcae821..fcd8284c7 100644 --- a/src/viur/core/module.py +++ b/src/viur/core/module.py @@ -215,8 +215,8 @@ def parse_value_by_annotation(annotation: type, name: str, value: str | list | t args = tuple(parsed_args + varargs) # always take "skey"-parameter name, when configured, as parsed_kwargs - if self.skey and self.skey in kwargs: - parsed_kwargs[self.skey] = kwargs.pop(self.skey) + if self.skey and self.skey["name"] in kwargs: + parsed_kwargs[self.skey["name"]] = kwargs.pop(self.skey["name"]) # When varkwargs are accepted, merge parsed_kwargs and kwargs, otherwise just use parsed_kwargs if varkwargs := varkwargs and bool(kwargs):