transition) { return; } $workflow = $this->registry->get($value->entityWorkflow, $value->entityWorkflow->getWorkflowName()); foreach ($value->transition->getTos() as $to) { $metadata = $workflow->getMetadataStore()->getPlaceMetadata($to); if ([] !== ($metadata['isSignature'] ?? [])) { if (null === $value->futureUserSignature && [] === $value->futurePersonSignatures) { $this->context->buildViolation($constraint->message) ->setCode($constraint->code) ->addViolation(); return; } return; } } // at this step, there is no signature in the To, we must check there is not users or persons if ($value->futureUserSignature instanceof User || [] !== $value->futurePersonSignatures) { $this->context->buildViolation($constraint->messageShouldBeEmpty) ->setCode($constraint->code) ->atPath($value->futureUserSignature instanceof User ? 'futureUserSignature' : 'futurePersonSignatures') ->addViolation(); } } }