mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 17:28:23 +00:00 
			
		
		
		
	[form][controller] pass suggested users on to workflow form
This commit is contained in:
		| @@ -30,6 +30,7 @@ use Symfony\Component\HttpFoundation\Response; | ||||
| use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; | ||||
| use Symfony\Component\Routing\Annotation\Route; | ||||
| use Symfony\Component\Security\Core\Exception\AccessDeniedException; | ||||
| use Symfony\Component\Security\Core\Security; | ||||
| use Symfony\Component\Validator\Validator\ValidatorInterface; | ||||
| use Symfony\Component\Workflow\Registry; | ||||
| use Symfony\Component\Workflow\TransitionBlocker; | ||||
| @@ -48,11 +49,13 @@ class WorkflowController extends AbstractController | ||||
|  | ||||
|     private Registry $registry; | ||||
|  | ||||
|     private Security $security; | ||||
|  | ||||
|     private TranslatorInterface $translator; | ||||
|  | ||||
|     private ValidatorInterface $validator; | ||||
|  | ||||
|     public function __construct(EntityWorkflowManager $entityWorkflowManager, EntityWorkflowRepository $entityWorkflowRepository, ValidatorInterface $validator, PaginatorFactory $paginatorFactory, Registry $registry, EntityManagerInterface $entityManager, TranslatorInterface $translator) | ||||
|     public function __construct(EntityWorkflowManager $entityWorkflowManager, EntityWorkflowRepository $entityWorkflowRepository, ValidatorInterface $validator, PaginatorFactory $paginatorFactory, Registry $registry, EntityManagerInterface $entityManager, TranslatorInterface $translator, Security $security) | ||||
|     { | ||||
|         $this->entityWorkflowManager = $entityWorkflowManager; | ||||
|         $this->entityWorkflowRepository = $entityWorkflowRepository; | ||||
| @@ -61,6 +64,7 @@ class WorkflowController extends AbstractController | ||||
|         $this->registry = $registry; | ||||
|         $this->entityManager = $entityManager; | ||||
|         $this->translator = $translator; | ||||
|         $this->security = $security; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -291,10 +295,18 @@ class WorkflowController extends AbstractController | ||||
|  | ||||
|         if (count($workflow->getEnabledTransitions($entityWorkflow)) > 0) { | ||||
|             // possible transition | ||||
|  | ||||
|             $usersInvolved = $entityWorkflow->getUsersInvolved(); | ||||
|             $currentUserFound = array_search($this->security->getUser(), $usersInvolved, true); | ||||
|  | ||||
|             if (false !== $currentUserFound) { | ||||
|                 unset($usersInvolved[$currentUserFound]); | ||||
|             } | ||||
|  | ||||
|             $transitionForm = $this->createForm( | ||||
|                 WorkflowStepType::class, | ||||
|                 $entityWorkflow->getCurrentStep(), | ||||
|                 ['transition' => true, 'entity_workflow' => $entityWorkflow] | ||||
|                 ['transition' => true, 'entity_workflow' => $entityWorkflow, 'suggested_users' => $usersInvolved] | ||||
|             ); | ||||
|  | ||||
|             $transitionForm->handleRequest($request); | ||||
|   | ||||
| @@ -154,6 +154,7 @@ class WorkflowStepType extends AbstractType | ||||
|                     'label' => 'workflow.dest for next steps', | ||||
|                     'multiple' => true, | ||||
|                     'mapped' => false, | ||||
|                     'suggested' => $options['suggested_users'], | ||||
|                 ]) | ||||
|                 ->add('future_dest_emails', ChillCollectionType::class, [ | ||||
|                     'label' => 'workflow.dest by email', | ||||
| @@ -200,6 +201,7 @@ class WorkflowStepType extends AbstractType | ||||
|             ->setAllowedTypes('transition', 'bool') | ||||
|             ->setRequired('entity_workflow') | ||||
|             ->setAllowedTypes('entity_workflow', EntityWorkflow::class) | ||||
|             ->setDefault('suggested_users', []) | ||||
|             ->setDefault('constraints', [ | ||||
|                 new Callback( | ||||
|                     function ($step, ExecutionContextInterface $context, $payload) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user