From 658e352138902e24bddb2623546f5b15d7f4e35d Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Tue, 28 Nov 2023 13:11:16 -0400 Subject: [PATCH 1/2] Improve get activated transition in gateway --- .../Nayra/Repositories/PersistenceTokenTrait.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php b/ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php index 756129af40..2336f3f917 100644 --- a/ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php +++ b/ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Nayra\Repositories; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Log; use ProcessMaker\Facades\WorkflowManager; use ProcessMaker\Listeners\BpmnSubscriber; use ProcessMaker\Listeners\CommentsSubscriber; @@ -166,9 +167,17 @@ public function persistGatewayTokenConsumed(array $transaction) public function persistGatewayTokenPassed(array $transaction) { $gateway = $this->deserializer->unserializeEntity($transaction['gateway']); - $transition = $this->deserializer->unserializeEntity($transaction['transition']); + if (!is_numeric($transaction['transition'])) { + Log::info('Invalid transition id for gateway token passed. ' . json_encode($transaction)); + return; + } + $transition = $gateway->getTransitions()[$transaction['transition']] ?? null; + if (empty($transaction)) { + Log::info('Invalid transition for gateway token passed. ' . json_encode($transaction)); + return; + } $tokens = $this->deserializer->unserializeTokensCollection($transaction['tokens']); - $this->tokenRepository->persistGatewayTokenPassed($gateway, $tokens[0]); + $this->tokenRepository->persistGatewayTokenPassed($gateway, $tokens->item(0)); // Comments $subscriber = new CommentsSubscriber(); From cae5383fe6a9fedd3b31cce5771431c247d20b6e Mon Sep 17 00:00:00 2001 From: David Callizaya Date: Tue, 28 Nov 2023 13:52:01 -0400 Subject: [PATCH 2/2] Fix variable name --- ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php b/ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php index 2336f3f917..6d79d5a381 100644 --- a/ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php +++ b/ProcessMaker/Nayra/Repositories/PersistenceTokenTrait.php @@ -172,7 +172,7 @@ public function persistGatewayTokenPassed(array $transaction) return; } $transition = $gateway->getTransitions()[$transaction['transition']] ?? null; - if (empty($transaction)) { + if (empty($transition)) { Log::info('Invalid transition for gateway token passed. ' . json_encode($transaction)); return; }