/** * @param FilterFormEvent $event */ public function onPreCreateForm(FilterFormEvent $event) { $formData = $event->getData(); if (!$formData instanceof User) { return; } /** @var \Symfony\Component\Form\FormInterface $form */ $form = $event->getForm(); if (!$formData->getId() || 'user' !== $form->getName()) { return; } $form->remove('plainPassword'); }
/** * @param CrudController $controller * @param Request $request * @param EntityInterface $data * @param FormInterface|null $form * * @return mixed */ public function createNewOrUpdate(CrudController $controller, Request $request, EntityInterface $data, FormInterface $form = null) { $translator = $this->container->get('translator'); $translationDomain = $this->container->getParameter('symfonian_id.admin.translation_domain'); $event = new FilterFormEvent(); $event->setData($data); $event->setForm($form); $this->fireEvent(Event::PRE_FORM_SUBMIT, $event); $response = $event->getResponse(); if ($response) { return $response; } $form->handleRequest($request); $viewParams['form'] = $form->createView(); $viewParams['form_theme'] = $this->container->getParameter('symfonian_id.admin.themes.form_theme'); $viewParams['menu'] = $this->container->getParameter('symfonian_id.admin.menu'); if ($request->isMethod('POST')) { $preFormValidationEvent = new FilterFormEvent(); $preFormValidationEvent->setForm($form); $this->fireEvent(Event::PRE_FORM_VALIDATION, $preFormValidationEvent); $response = $preFormValidationEvent->getResponse(); if ($response) { return $response; } if (!$form->isValid()) { $viewParams['errors'] = true; } else { $data = $form->getData(); $preSaveEvent = new FilterEntityEvent(); $preSaveEvent->setEntity($data); $preSaveEvent->setEntityManager($this->manager); $this->fireEvent(Event::PRE_SAVE, $preSaveEvent); $this->manager->persist($data); $this->manager->flush(); $postSaveEvent = new FilterEntityEvent(); $postSaveEvent->setEntityManager($this->manager); $postSaveEvent->setEntity($data); $this->fireEvent(Event::POST_SAVE, $postSaveEvent); $viewParams['success'] = $translator->trans('message.data_saved', array(), $translationDomain); } } $this->viewParams = array_merge($this->viewParams, $viewParams); }