Esempio n. 1
0
 /**
  * For the given $token an activation link is returned.
  *
  * @param Token $token
  * @return string
  * @throws InvalidTokenException
  */
 public function getActivationLink(Token $token)
 {
     $activationConfiguration = $token->getPreset()['activation'];
     $tokenHash = $token->getHash();
     if ($activationConfiguration['uri'] === NULL) {
         throw new \RuntimeException('Building activation link failed, no uri configuration is set', 1434728943);
     } elseif (is_array($activationConfiguration['uri'])) {
         $routerConfiguration = $activationConfiguration['uri'];
         $this->uriBuilder->setRequest($this->request);
         $uri = $this->uriBuilder->setCreateAbsoluteUri(TRUE)->setFormat($routerConfiguration['@format'])->uriFor($routerConfiguration['@action'], $routerConfiguration['arguments'], $routerConfiguration['@controller'], $routerConfiguration['@package'], $routerConfiguration['@subpackage']);
     } elseif (is_string($activationConfiguration['uri'])) {
         $uri = $activationConfiguration['uri'];
     } else {
         throw new \RuntimeException('Building activation link failed, uri configuration is invalid (neither array nor string)', 1434732898);
     }
     $this->logger->log(sprintf('Activation link built for token with hash %s', $tokenHash, $token->getIdentifier()), LOG_INFO);
     return str_replace('-tokenhash-', $tokenHash, $uri);
 }