From 68d1dc1b2790b952a6c54fb22958f29f50a9bfb4 Mon Sep 17 00:00:00 2001 From: Nil Bacardit Date: Wed, 24 Aug 2022 12:49:56 +0200 Subject: [PATCH 1/2] being able to call do_action with super powers using the utility --- CHANGELOG.rst | 4 +++- guillotina/contrib/workflows/utility.py | 13 +++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e50a82540..d5243c5b6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,7 +4,9 @@ CHANGELOG 6.4.2 (unreleased) ------------------ -- Nothing changed yet. +- Being able to call do_action with super powers in the Workflow + utility + [nilbacardit26] 6.4.1 (2022-07-27) diff --git a/guillotina/contrib/workflows/utility.py b/guillotina/contrib/workflows/utility.py index 213e2e252..96c8fc483 100644 --- a/guillotina/contrib/workflows/utility.py +++ b/guillotina/contrib/workflows/utility.py @@ -60,17 +60,18 @@ async def available_actions(self, request): def initial_state(self): return self._initial_state - async def do_action(self, action, comments): + async def do_action(self, action, comments, bypass_permission_check=False): available_actions = self.actions if action not in available_actions: raise HTTPPreconditionFailed(content={"reason": "Unavailable action"}) action_def = available_actions[action] - policy = get_security_policy() - if "check_permission" in action_def and not policy.check_permission( - action_def["check_permission"], self.context - ): - raise HTTPUnauthorized() + if bypass_permission_check is False: + policy = get_security_policy() + if "check_permission" in action_def and not policy.check_permission( + action_def["check_permission"], self.context + ): + raise HTTPUnauthorized() # Change permission new_state = action_def["to"] From 2c7d94bbb30396e08acfe2cbf0859acb7f94ff1f Mon Sep 17 00:00:00 2001 From: Nil Bacardit Date: Thu, 25 Aug 2022 09:24:27 +0200 Subject: [PATCH 2/2] pinning docker --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 98e9b9e37..dc7fe3e5b 100644 --- a/setup.py +++ b/setup.py @@ -78,7 +78,7 @@ extras_require={ "test": [ "pytest>=3.8.0,<6.3.0", - "docker", + "docker>=5.0.0,<6.0.0", "backoff", "psycopg2-binary", "pytest-asyncio<=0.13.0",