/** * Process form * * @param User $entity * * @return bool True on successful processing, false otherwise */ public function process(User $entity) { if (in_array($this->request->getMethod(), ['POST', 'PUT'])) { $this->form->submit($this->request); if ($this->form->isValid()) { $entity->setPlainPassword($this->form->get('password')->getData()); $entity->setPasswordChangedAt(new \DateTime()); try { $this->mailerProcessor->sendChangePasswordEmail($entity); } catch (\Exception $e) { $this->form->addError(new FormError($this->translator->trans('oro.email.handler.unable_to_send_email'))); $this->logger->error('Email sending failed.', ['exception' => $e]); return false; } $this->userManager->updateUser($entity); return true; } } return false; }
public function checkPreAuthProvider() { $data = []; $user = $this->getMock('Symfony\\Component\\Security\\Core\\User\\UserInterface'); $data[] = ['user' => $user, 'getTokenCalls' => 0, 'token' => null, 'exceptionThrown' => false]; $user1 = new User(); $data[] = ['user' => $user1, 'getTokenCalls' => 1, 'token' => null, 'exceptionThrown' => false]; $user2 = new User(); $user2->getPasswordChangedAt(new \DateTime()); $user2->setLastLogin((new \DateTime())->modify('+1 minute')); $data[] = ['user' => $user2, 'getTokenCalls' => 1, 'token' => 'not_null', 'exceptionThrown' => false]; $user3 = new User(); $passwordChangedAt = new \DateTime(); $lastLogin = clone $passwordChangedAt; $user3->setPasswordRequestedAt($passwordChangedAt); $user3->setLastLogin($lastLogin); $data[] = ['user' => $user3, 'getTokenCalls' => 1, 'token' => 'not_null', 'exceptionThrown' => false]; $user4 = new User(); $user4->setPasswordChangedAt(new \DateTime()); $user4->setLastLogin((new \DateTime())->modify('-1 minute')); $data[] = ['user' => $user4, 'getTokenCalls' => 1, 'token' => 'not_null', 'exceptionThrown' => true]; return $data; }