/**
  * 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;
 }
Exemple #2
0
 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;
 }