diff -r 806e57d67020 -r e54dfe4d0b2b vendor/bundles/FOS/UserBundle/Form/Handler/ResettingFormHandler.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/bundles/FOS/UserBundle/Form/Handler/ResettingFormHandler.php Fri Sep 30 11:24:53 2011 +0200 @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace FOS\UserBundle\Form\Handler; + +use Symfony\Component\Form\Form; +use Symfony\Component\HttpFoundation\Request; + +use FOS\UserBundle\Model\UserInterface; +use FOS\UserBundle\Model\UserManagerInterface; +use FOS\UserBundle\Form\Model\ResetPassword; + +class ResettingFormHandler +{ + protected $request; + protected $userManager; + protected $form; + + public function __construct(Form $form, Request $request, UserManagerInterface $userManager) + { + $this->form = $form; + $this->request = $request; + $this->userManager = $userManager; + } + + public function getNewPassword() + { + return $this->form->getData()->new; + } + + public function process(UserInterface $user) + { + $this->form->setData(new ResetPassword()); + + if ('POST' == $this->request->getMethod()) { + $this->form->bindRequest($this->request); + + if ($this->form->isValid()) { + $this->onSuccess($user); + + return true; + } + } + + return false; + } + + protected function onSuccess(UserInterface $user) + { + $user->setPlainPassword($this->getNewPassword()); + $user->setConfirmationToken(null); + $user->setEnabled(true); + $this->userManager->updateUser($user); + } +}