public function testDelete() { $testEntity = UserPasswordResetTokenTest::createTestPasswordResetToken(); self::$entityManager->persist($testEntity); self::$entityManager->flush(); $entities = self::$entityManager->createQuery('SELECT e FROM Rexmac\\Zyndax\\Entity\\UserPasswordResetToken e')->execute(); $this->assertEquals(1, count($entities)); UserPasswordResetTokenService::delete($testEntity); $entities = self::$entityManager->createQuery('SELECT e FROM Rexmac\\Zyndax\\Entity\\UserPasswordResetToken e')->execute(); $this->assertEquals(0, count($entities)); }
/** * Password reset action * * Allows user to reset their password. * * @return void */ public function resetpasswordAction() { if (Zend_Auth::getInstance()->hasIdentity()) { return $this->_helper->redirector('index', 'index'); } $token = $this->getRequest()->getParam('token', null); if (null === $token || '' == $token) { throw new UserControllerException('Invalid verification token'); } if (null == ($passwordResetToken = UserPasswordResetTokenService::findOneByToken($token))) { throw new UserControllerException('Invalid verification token'); } $form = new \Application_Form_UserPasswordReset(); $request = $this->getRequest(); if ($request->isPost()) { if ($form->isValid($request->getPost())) { $data = $form->getValues(); // Update user's password $user = $passwordResetToken->getUser(); $user->setPassword(UserService::encryptPassword($data['password'])); UserService::update(); // Track changes UserEditEventService::create(array('user' => $user, 'editor' => $user, 'ip' => $this->getRequest()->getServer('REMOTE_ADDR'), 'date' => new DateTime(), 'description' => 'Password reset.')); // Delete sender verification record UserPasswordResetTokenService::delete($passwordResetToken); // Redirect to login page $this->_helper->sessionMessenger('Password reset successfully. You may now login using your new password.', 'success'); return $this->getHelper('Redirector')->gotoRoute(array(), 'login'); } else { // Submitted form data is invalid $this->getResponse()->setHttpResponseCode(500); $this->view->success = 0; } } $this->view->form = $form; }