public function buildForm(FormBuilderInterface $builder, array $options) { parent::buildForm($builder, $options); $builder->remove('username')->remove('plainPassword'); $factory = $builder->getFormFactory(); $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($factory) { $data = $event->getData(); $form = $event->getForm(); if ($data) { $form->add($factory->createNamed('groups', 'entity', null, array('class' => 'WealthbotUserBundle:Group', 'choices' => $data->getGroups(), 'disabled' => true, 'multiple' => true))); } }); }
public function buildForm(FormBuilderInterface $builder, array $options) { parent::buildForm($builder, $options); /** @var $data \Wealthbot\UserBundle\Entity\User */ $data = $builder->getData(); $choices = array('master' => 'Master', 'pm' => 'Manager', 'csr' => 'CSR'); $level = null; $options['validation_groups'] = array('password'); if (!is_null($data) && $data->getId()) { foreach ($choices as $key => $choice) { $role = 'ROLE_ADMIN_' . strtoupper($key); if ($data->hasRole($role)) { $level = $key; break; } } } $builder->remove('username')->add('profile', new AdminProfileType())->add('level', 'choice', array('choices' => $choices, 'property_path' => false, 'preferred_choices' => $level ? array($level) : array())); if (!is_null($data) && $data->getId()) { $builder->remove('email')->remove('plainPassword')->add('plainPassword', 'repeated', array('type' => 'password', 'options' => array('translation_domain' => 'FOSUserBundle'), 'first_options' => array('label' => 'form.password'), 'second_options' => array('label' => 'form.password_confirmation'), 'required' => false)); } $builder->addEventListener(FormEvents::BIND, function (FormEvent $event) { /** @var $user User */ $user = $event->getData(); $form = $event->getForm(); if (!$user->getId()) { $user->setEnabled(true); } $level = $form->get('level')->getData(); if (!$form->get('profile')->get('first_name')->getData()) { $form->get('profile')->get('first_name')->addError(new FormError('Required.')); } if (!$form->get('profile')->get('last_name')->getData()) { $form->get('profile')->get('last_name')->addError(new FormError('Required.')); } switch ($level) { case 'master': $user->setRoles(array('ROLE_ADMIN_MASTER')); break; case 'pm': $user->setRoles(array('ROLE_ADMIN_PM')); break; case 'csr': $user->setRoles(array('ROLE_ADMIN_CSR')); break; } $user->setUsername($user->getEmail()); }); }
public function buildForm(FormBuilderInterface $builder, array $options) { parent::buildForm($builder, $options); $builder->remove('username')->add('profile', new ClientProfileType())->add('is_accepted', 'checkbox', array('required' => true, 'property_path' => false)); $builder->addEventListener(\Symfony\Component\Form\FormEvents::BIND, function (\Symfony\Component\Form\Event\DataEvent $event) { $form = $event->getForm(); $client = $event->getData(); if (!$form->get('is_accepted')->getData()) { $form->get('is_accepted')->addError(new FormError('Required.')); } if (!$form->get('profile')->get('first_name')->getData()) { $form->get('profile')->get('first_name')->addError(new FormError('Required.')); } if (!$form->get('profile')->get('last_name')->getData()) { $form->get('profile')->get('last_name')->addError(new FormError('Required.')); } $client->setUsername($client->getEmail()); }); }