diff --git a/lib/Rozier/src/Forms/UserSecurityType.php b/lib/Rozier/src/Forms/UserSecurityType.php index 3055d7d1..df26f076 100644 --- a/lib/Rozier/src/Forms/UserSecurityType.php +++ b/lib/Rozier/src/Forms/UserSecurityType.php @@ -4,9 +4,11 @@ namespace Themes\Rozier\Forms; +use RZ\Roadiz\CoreBundle\Entity\Node; use RZ\Roadiz\CoreBundle\Entity\User; use RZ\Roadiz\CoreBundle\Form\NodesType; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\CallbackTransformer; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\DateTimeType; use Symfony\Component\Form\FormBuilderInterface; @@ -57,8 +59,21 @@ public function buildForm(FormBuilderInterface $builder, array $options): void $builder->add('chroot', NodesType::class, [ 'label' => 'chroot', 'required' => false, - 'multiple' => false, ]); + $builder->get('chroot')->addModelTransformer(new CallbackTransformer( + function (mixed $mixedEntities) { + if ($mixedEntities instanceof Node) { + return [$mixedEntities]; + } + return []; + }, + function (mixed $mixedIds) { + if (\is_array($mixedIds) && count($mixedIds) === 1) { + return $mixedIds[0]; + } + return null; + } + )); } }