function test2() { $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $userAccountResetRepository = new UserAccountResetRepository(); # Test1: recently unused is null TimeSource::mock(2013, 1, 1, 1, 0, 1); $x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180); $this->assertNull($x); # Test2: Request one TimeSource::mock(2013, 1, 1, 1, 0, 2); $userAccountReset = $userAccountResetRepository->create($user); #Test 3: recently unused has one TimeSource::mock(2013, 1, 1, 1, 0, 3); $x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180); $this->assertTrue($x != null); # Test4: days pass. recently unused is null again TimeSource::mock(2013, 1, 5, 1, 0, 5); $x = $userAccountResetRepository->loadRecentlyUnusedSentForUserAccountId($user->getId(), 180); $this->assertNull($x); }
function reset($id, $code, Request $request, Application $app) { $userRepository = new UserAccountRepository(); if ($app['currentUser'] && $app['currentUser']->getId() == $id) { // We do this to save a DB Query $user = $app['currentUser']; } else { $user = $userRepository->loadByID($id); } if (!$user) { $app['monolog']->addError("Failed resetting account - user not known"); return $app['twig']->render('index/user/resetFail.html.twig', array()); } $userAccountResetRepository = new UserAccountResetRepository(); $userAccountReset = $userAccountResetRepository->loadByUserAccountIDAndAccessKey($id, $code); if (!$userAccountReset) { $app['monolog']->addError("Failed resetting account - user " . $user->getId() . " - code wrong"); return $app['twig']->render('index/user/resetFail.html.twig', array()); } if ($userAccountReset->getIsAlreadyUsed()) { $app['monolog']->addError("Failed resetting account - user " . $user->getId() . " - code already used"); return $app['twig']->render('index/user/resetFail.html.twig', array()); } $form = $app['form.factory']->create(new ResetUserForm()); if ('POST' == $request->getMethod()) { $form->bind($request); if ($form->isValid()) { $data = $form->getData(); $user->setPassword($data['password1']); $userRepository->resetAccount($user, $userAccountReset); return $app['twig']->render('index/user/resetDone.html.twig', array('user' => $user)); } } return $app['twig']->render('index/user/reset.html.twig', array('form' => $form->createView(), 'user' => $user)); }