chillLogger = $chillLogger; $this->passwordEncoder = $passwordEncoder; $this->translator = $translator; } /** * * @param Request $request * @return Response */ public function UserPasswordAction(Request $request) { // get authentified user $user = $this->getUser(); // create a form for password_encoder $form = $this->passwordForm($user); // process the form $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $password = $form->get('new_password')->getData(); // logging for prod $this ->chillLogger ->notice( 'update password for an user', array( 'method' => $request->getMethod(), 'user' => $user->getUsername() ) ); $user->setPassword($this->passwordEncoder->encodePassword($user, $password)); $em = $this->getDoctrine()->getManager(); $em->flush(); $this->addFlash('success', $this->translator->trans('Password successfully updated!')); return $this->redirectToRoute('change_my_password'); } // render into a template return $this->render('ChillMainBundle:Password:password.html.twig', array( 'form' => $form->createView() )); } /** * * * @param User $user * @return \Symfony\Component\Form\Form */ private function passwordForm(User $user) { return $this->createForm( UserPasswordType::class, [], [ 'user' => $this->getUser() ] ) ->add('submit', SubmitType::class, array('label' => 'Change password')) ; } }