コード例 #1
0
 /**
  * Register new Diamante User and grant API access for it.
  * Sends confirmation email. While registration is not confirmed API access is not active
  * @param Command\RegisterCommand $command
  * @return void
  */
 public function register(Command\RegisterCommand $command)
 {
     $diamanteUser = $this->diamanteUserFactory->create($command->email, $command->firstName, $command->lastName);
     $apiUser = $this->apiUserFactory->create($command->email, $command->password);
     if ($this->diamanteUserRepository->findUserByEmail($command->email)) {
         throw new \RuntimeException('An account with this email address already exists');
     }
     $diamanteUser->setApiUser($apiUser);
     $this->diamanteUserRepository->store($diamanteUser);
     $this->registrationMailer->sendConfirmationEmail($diamanteUser->getEmail(), $apiUser->getHash());
 }
 /**
  * @param ResetPasswordCommand $command
  * @return void
  * @throws \RuntimeException if given emailAddres is not equal to generated one for user
  */
 public function resetPassword(ResetPasswordCommand $command)
 {
     /**
      * @var DiamanteUser $diamanteUser
      */
     $diamanteUser = $this->diamanteUserRepository->findUserByEmail($command->email);
     if (is_null($diamanteUser)) {
         throw new \RuntimeException('No accounts with that email found.');
     }
     /**
      * @var ApiUser $apiUser
      */
     $apiUser = $this->apiUserRepository->findUserByEmail($command->email);
     if (is_null($apiUser)) {
         $apiUser = $this->apiUserFactory->create($command->email, sha1(microtime(true), true));
     }
     $apiUser->generateHash();
     $this->apiUserRepository->store($apiUser);
     $this->resetPasswordMailer->sendResetEmail($diamanteUser->getEmail(), $apiUser->getHash());
 }