/**
  * {@inheritDoc}
  */
 public function setRoles(array $roles)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setRoles', array($roles));
     return parent::setRoles($roles);
 }
 /**
  * Edits an existing Usuario entity.
  *
  * @Route("/{id}/update", name="security_usuario_update")
  * @Method({"POST", "PUT"})
  */
 public function updateAction(Request $request, Usuario $user)
 {
     $model = new UserModel($user);
     //$deleteForm = $this->createDeleteForm($id);
     $editForm = $this->createEditForm($model);
     $editForm->handleRequest($request);
     if ($editForm->isValid()) {
         $em = $this->get('doctrine.orm.entity_manager');
         $userManager = $this->get('fos_user.user_manager');
         $user->setNombres($model->getNombres());
         $user->setApellidos($model->getApellidos());
         $user->setEmail($model->getEmail());
         $user->setRoles($model->getRoles());
         if (0 !== strlen($model->getPlainPassword())) {
             $user->setPlainPassword($model->getPlainPassword());
             $userManager->updatePassword($user);
         }
         if (0 !== strlen($model->getPin())) {
             $user->setPin($model->getPin());
         }
         try {
             $userManager->updateUser($user);
             $this->get('session')->getFlashBag()->add('success', 'Se han editado los datos del usuario satisfactoriamente.');
             return $this->redirect($this->generateUrl('security_usuario_edit', array('id' => $user->getId())));
         } catch (\Exception $e) {
             $this->get('logger')->critical(sprintf('Ha ocurrido un error al editar los datos del usuario. Detalles: %s', $e->getMessage()));
             $this->get('session')->getFlashBag()->add('danger', 'Ha ocurrido un error al editar los datos del usuario.');
         }
     }
     return $this->render('HatueySoftSecurityBundle:Usuario:edit.html.twig', array('entity' => $user, 'edit_form' => $editForm->createView()));
 }