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 forgot(Request $request, Application $app) { $form = $app['form.factory']->create(new ForgotUserForm()); if ('POST' == $request->getMethod()) { $form->bind($request); if ($form->isValid()) { $data = $form->getData(); $userRepository = new UserAccountRepository(); if ($data['email']) { $user = $userRepository->loadByEmail($data['email']); } else { if ($data['username']) { $user = $userRepository->loadByUserName($data['username']); } } if ($user) { if ($user->getIsClosedBySysAdmin()) { $form->addError(new FormError('There was a problem with this account and it has been closed: ' . $user->getClosedBySysAdminReason())); } else { $aurr = new UserAccountResetRepository(); $uarLast = $aurr->loadRecentlyUnusedSentForUserAccountId($user->getId(), $app['config']->resetEmailsGapBetweenInSeconds); if ($uarLast) { $form->addError(new FormError('An email was sent recently; please try again soon')); } else { $uar = $aurr->create($user); $uar->sendEmail($app, $user); return $app['twig']->render('index/user/forgotDone.html.twig', array()); } } } else { $form->addError(new FormError('User not known')); } } } return $app['twig']->render('index/user/forgot.html.twig', array('form' => $form->createView())); }