Exemple #1
0
 /**
  * Displays a form to edit an existing Actor entity.
  *
  * @Route("/admin/actor/{id}/edit")
  * @Method({"GET", "POST"})
  * @Template()
  */
 public function editAction(Request $request, Actor $actor)
 {
     $oldPassword = $actor->getPassword();
     $deleteForm = $this->createDeleteForm($actor);
     $editForm = $this->createForm('CoreBundle\\Form\\ActorEditType', $actor);
     $editForm->handleRequest($request);
     if ($editForm->isSubmitted() && $editForm->isValid()) {
         $em = $this->getDoctrine()->getManager();
         if ($actor->getRemoveImage()) {
             $actor->setImage(null);
         }
         //crypt password
         $password = $editForm->getNormData()->getPassword();
         if ($password != '') {
             $factory = $this->get('security.encoder_factory');
             $encoder = $factory->getEncoder(new Actor());
             $encodePassword = $encoder->encodePassword($password, $actor->getSalt());
             $actor->setPassword($encodePassword);
         } else {
             $actor->setPassword($oldPassword);
         }
         $em->persist($actor);
         $em->flush();
         //image
         $filesData = $request->files->get('actor_edit');
         if (isset($filesData['image']['file']) && $filesData['image']['file'] instanceof UploadedFile) {
             $this->get('core_manager')->uploadProfileImage($actor);
         }
         $this->get('session')->getFlashBag()->add('success', 'actor.edited');
         return $this->redirectToRoute('core_actor_show', array('id' => $actor->getId()));
     }
     return array('entity' => $actor, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView());
 }