kiedy edytuje w cmsie (CRUD) użytkownika: hasło zapisuje do bazy nie zahashowane :/
a w pliku security.yml mam:
security: encoders: FOS\UserBundle\Model\UserInterface: sha512
na stronie -edycja profilu- zapisuje prawidłowo.
Prosze o pomoc.
/** * Displays a form to edit an existing User entity. * * @Route("/{id}/edit", name="backend_cms_users_edit") * @Method("GET") * @Template() */ public function editAction($id) { $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository('UserBundle:User')->find($id); if (!$entity) { throw $this->createNotFoundException('Unable to find User entity.'); } $editForm = $this->createEditForm($entity); $deleteForm = $this->createDeleteForm($id); 'entity' => $entity, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView(), ); } /** * Creates a form to edit a User entity. * * @param User $entity The entity * * @return \Symfony\Component\Form\Form The form */ private function createEditForm(User $entity) { 'method' => 'PUT', )); return $form; } /** * Edits an existing User entity. * * @Route("/{id}", name="backend_cms_users_update") * @Method("PUT") * @Template("UserBundle:User:edit.html.twig") */ public function updateAction(Request $request, $id) { $em = $this->getDoctrine()->getManager(); $entity = $em->getRepository('UserBundle:User')->find($id); if (!$entity) { throw $this->createNotFoundException('Unable to find User entity.'); } $deleteForm = $this->createDeleteForm($id); $editForm = $this->createEditForm($entity); $editForm->handleRequest($request); if ($editForm->isValid()) { $em->flush(); } 'entity' => $entity, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView(), ); }
$encoder = $this->get('security.encoder_factory')->getEncoder($user); $encodedPass = $encoder->encodePassword($password, $user->getSalt());
$plainTextPassword = $this->get('request')->request->get('password'); $user = new Test\UserBundle\Entity\User; $encoder = $this->get('security.encoder_factory')->getEncoder($user); $encodedPass = $encoder->encodePassword($plainTextPassword, $user->getSalt());
$user = new User(); $user= $editForm->getData(); $pwd=$user->getPassword(); $encoder=$this->container->get('security.password_encoder'); $pwd=$encoder->encodePassword($user, $pwd); $user->setPassword($pwd);