Adjust logic for removing the hold on a workflow only by user who owns the hold and when a transition is applied on the workflow

This commit is contained in:
2024-08-30 12:59:08 +02:00
committed by Julien Fastré
parent 41ffc470a0
commit 745a29f742
5 changed files with 48 additions and 26 deletions

View File

@@ -298,7 +298,7 @@ class WorkflowController extends AbstractController
$workflow = $this->registry->get($entityWorkflow, $entityWorkflow->getWorkflowName());
$errors = [];
$signatures = $entityWorkflow->getCurrentStep()->getSignatures();
$holdOnStepByUser = $this->entityWorkflowStepHoldRepository->findOneByStepAndUser($entityWorkflow->getCurrentStep(), $this->security->getUser());
$onHoldStep = $this->entityWorkflowStepHoldRepository->findByWorkflow($entityWorkflow);
if (\count($workflow->getEnabledTransitions($entityWorkflow)) > 0) {
// possible transition
@@ -343,6 +343,10 @@ class WorkflowController extends AbstractController
$this->entityManager->flush();
if ($onHoldStep) {
$this->entityManager->remove($onHoldStep);
}
return $this->redirectToRoute('chill_main_workflow_show', ['id' => $entityWorkflow->getId()]);
}
@@ -361,7 +365,7 @@ class WorkflowController extends AbstractController
'entity_workflow' => $entityWorkflow,
'transition_form_errors' => $errors,
'signatures' => $signatures,
'holdOnStepByUser' => $holdOnStepByUser,
'onHoldStep' => $onHoldStep,
]
);
}