diff --git a/src/Bundle/ChillMainBundle/Form/Type/UserPickerType.php b/src/Bundle/ChillMainBundle/Form/Type/UserPickerType.php index 0141438f6..c9a644aa9 100644 --- a/src/Bundle/ChillMainBundle/Form/Type/UserPickerType.php +++ b/src/Bundle/ChillMainBundle/Form/Type/UserPickerType.php @@ -16,6 +16,7 @@ use Chill\MainBundle\Entity\User; use Chill\MainBundle\Repository\UserACLAwareRepositoryInterface; use Chill\MainBundle\Repository\UserRepository; use Chill\MainBundle\Security\Authorization\AuthorizationHelper; +use Chill\MainBundle\Templating\Entity\UserRender; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\OptionsResolver\Options; @@ -47,16 +48,20 @@ class UserPickerType extends AbstractType protected UserRepository $userRepository; + private UserRender $userRender; + public function __construct( AuthorizationHelper $authorizationHelper, TokenStorageInterface $tokenStorage, UserRepository $userRepository, - UserACLAwareRepositoryInterface $userACLAwareRepository + UserACLAwareRepositoryInterface $userACLAwareRepository, + UserRender $userRender ) { $this->authorizationHelper = $authorizationHelper; $this->tokenStorage = $tokenStorage; $this->userRepository = $userRepository; $this->userACLAwareRepository = $userACLAwareRepository; + $this->userRender = $userRender; } public function configureOptions(OptionsResolver $resolver) @@ -74,14 +79,19 @@ class UserPickerType extends AbstractType ->setAllowedTypes('having_permissions_group_flag', ['string', 'null']) ->setDefault('class', User::class) ->setDefault('placeholder', 'Choose an user') - ->setDefault('choice_label', static function (User $u) { - return $u->getUsername(); + ->setDefault('choice_label', function (User $u) { + return $this->userRender->renderString($u, []); }) ->setDefault('scope', null) ->setAllowedTypes('scope', [Scope::class, 'array', 'null']) ->setNormalizer('choices', function (Options $options) { + if ($options['role'] instanceof Role) { + $role = $options['role']->getRole(); + } else { + $role = $options['role']; + } $users = $this->userACLAwareRepository - ->findUsersByReachedACL($options['role']->getRole(), $options['center'], $options['scope'], true); + ->findUsersByReachedACL($role, $options['center'], $options['scope'], true); if (null !== $options['having_permissions_group_flag']) { return $this->userRepository