mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 01:08:26 +00:00 
			
		
		
		
	Fix Create a PickUserGroupOrUserDynamicType
This commit is contained in:
		| @@ -18,9 +18,12 @@ use Doctrine\Common\Collections\Order; | ||||
| use Doctrine\Common\Collections\ReadableCollection; | ||||
| use Doctrine\Common\Collections\Selectable; | ||||
| use Doctrine\ORM\Mapping as ORM; | ||||
| use Symfony\Component\Serializer\Annotation\DiscriminatorMap; | ||||
|  | ||||
| #[ORM\Entity] | ||||
| #[ORM\Table(name: 'chill_main_user_group')] | ||||
| // this discriminator key is required for automated denormalization | ||||
| #[DiscriminatorMap('type', mapping: ['user_group' => UserGroup::class])] | ||||
| class UserGroup | ||||
| { | ||||
|     #[ORM\Id] | ||||
| @@ -65,7 +68,7 @@ class UserGroup | ||||
|  | ||||
|     public function __construct() | ||||
|     { | ||||
|         $this->adminUsers = new \Doctrine\Common\Collections\ArrayCollection(); | ||||
|         $this->adminUsers = new ArrayCollection(); | ||||
|         $this->users = new ArrayCollection(); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ namespace Chill\MainBundle\Form\Type\DataTransformer; | ||||
|  | ||||
| use Chill\MainBundle\Entity\User; | ||||
| use Chill\MainBundle\Entity\UserGroup; | ||||
| use Chill\MainBundle\Serializer\Normalizer\DiscriminatedObjectDenormalizer; | ||||
| use Chill\PersonBundle\Entity\Person; | ||||
| use Chill\ThirdPartyBundle\Entity\ThirdParty; | ||||
| use Symfony\Component\Form\DataTransformerInterface; | ||||
| @@ -76,15 +77,22 @@ class EntityToJsonTransformer implements DataTransformerInterface | ||||
|             'person' => Person::class, | ||||
|             'thirdparty' => ThirdParty::class, | ||||
|             'user_group' => UserGroup::class, | ||||
|             'user_group_or_user' => DiscriminatedObjectDenormalizer::TYPE, | ||||
|             default => throw new \UnexpectedValueException('This type is not supported'), | ||||
|         }; | ||||
|  | ||||
|         $context = [AbstractNormalizer::GROUPS => ['read']]; | ||||
|  | ||||
|         if ('user_group_or_user' === $this->type) { | ||||
|             $context[DiscriminatedObjectDenormalizer::ALLOWED_TYPES] = [UserGroup::class, User::class]; | ||||
|         } | ||||
|  | ||||
|         return | ||||
|             $this->denormalizer->denormalize( | ||||
|                 ['type' => $item['type'], 'id' => $item['id']], | ||||
|                 $class, | ||||
|                 'json', | ||||
|                 [AbstractNormalizer::GROUPS => ['read']], | ||||
|                 $context, | ||||
|             ); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -30,7 +30,7 @@ final class PickUserGroupOrUserDynamicType extends AbstractType | ||||
|  | ||||
|     public function buildForm(FormBuilderInterface $builder, array $options) | ||||
|     { | ||||
|         $builder->addViewTransformer(new EntityToJsonTransformer($this->denormalizer, $this->serializer, $options['multiple'], 'user_group')); | ||||
|         $builder->addViewTransformer(new EntityToJsonTransformer($this->denormalizer, $this->serializer, $options['multiple'], 'user_group_or_user')); | ||||
|     } | ||||
|  | ||||
|     public function buildView(FormView $view, FormInterface $form, array $options) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user