![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/UserBundle/Form/Type/ |
<?php namespace Mautic\UserBundle\Form\Type; use Mautic\CoreBundle\Form\EventListener\CleanFormSubscriber; use Mautic\CoreBundle\Form\EventListener\FormExitSubscriber; use Mautic\CoreBundle\Form\Type\FormButtonsType; use Mautic\CoreBundle\Form\Type\YesNoButtonGroupType; use Mautic\UserBundle\Entity\Role; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\Valid; /** * @extends AbstractType<RoleType> */ class RoleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->addEventSubscriber(new CleanFormSubscriber(['description' => 'html'])); $builder->addEventSubscriber(new FormExitSubscriber('user.role', $options)); $builder->add( 'name', TextType::class, [ 'label' => 'mautic.core.name', 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => 'form-control'], ] ); $builder->add( 'description', TextareaType::class, [ 'label' => 'mautic.core.description', 'label_attr' => ['class' => 'control-label'], 'attr' => ['class' => 'form-control editor'], 'required' => false, ] ); $builder->add('isAdmin', YesNoButtonGroupType::class, [ 'label' => 'mautic.user.role.form.isadmin', 'attr' => [ 'onchange' => 'Mautic.togglePermissionVisibility();', 'tooltip' => 'mautic.user.role.form.isadmin.tooltip', ], ]); // add a normal text field, but add your transformer to it $hidden = ($options['data']->isAdmin()) ? ' hide' : ''; $builder->add( 'permissions', PermissionsType::class, [ 'label' => 'mautic.user.role.permissions', 'mapped' => false, // we'll have to manually build the permissions for persisting 'required' => false, 'attr' => [ 'class' => $hidden, ], 'permissionsConfig' => $options['permissionsConfig'], ] ); $builder->add('buttons', FormButtonsType::class); if (!empty($options['action'])) { $builder->setAction($options['action']); } } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => Role::class, 'constraints' => [new Valid()], 'permissionsConfig' => [], ]); } }