Пример #1
0
 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)));
         }
     });
 }
Пример #2
0
 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());
     });
 }