use Psr\Log\LoggerInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
use Wallabag\CoreBundle\Repository\SiteCredentialRepository;
-use Wallabag\UserBundle\Entity\User;
class GrabySiteConfigBuilder implements SiteConfigBuilder
{
private $logger;
/**
- * @var User|null
+ * @var TokenStorage
*/
- private $currentUser;
+ private $token;
/**
* GrabySiteConfigBuilder constructor.
$this->grabyConfigBuilder = $grabyConfigBuilder;
$this->credentialRepository = $credentialRepository;
$this->logger = $logger;
-
- if ($token->getToken()) {
- $this->currentUser = $token->getToken()->getUser();
- }
+ $this->token = $token;
}
/**
*/
public function buildForHost($host)
{
+ $user = $this->getUser();
+
// required by credentials below
$host = strtolower($host);
if ('www.' === substr($host, 0, 4)) {
$host = substr($host, 4);
}
- if (!$this->currentUser) {
+ if (!$user) {
$this->logger->debug('Auth: no current user defined.');
return false;
$hosts[] = '.' . implode('.', $split);
}
- $credentials = $this->credentialRepository->findOneByHostsAndUser($hosts, $this->currentUser->getId());
+ $credentials = $this->credentialRepository->findOneByHostsAndUser($hosts, $user->getId());
if (null === $credentials) {
$this->logger->debug('Auth: no credentials available for host.', ['host' => $host]);
return $extraFields;
}
+
+ private function getUser()
+ {
+ if ($this->token->getToken() && null !== $this->token->getToken()->getUser()) {
+ return $this->token->getToken()->getUser();
+ }
+
+ return null;
+ }
}