forked from wallabag/wallabag
Retrieve username/password from database
Inject the current user & the repo to retrieve username/password from the database
This commit is contained in:
@ -6,6 +6,8 @@ use BD\GuzzleSiteAuthenticator\SiteConfig\SiteConfig;
|
||||
use BD\GuzzleSiteAuthenticator\SiteConfig\SiteConfigBuilder;
|
||||
use Graby\SiteConfig\ConfigBuilder;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Wallabag\CoreBundle\Repository\SiteCredentialRepository;
|
||||
use Wallabag\UserBundle\Entity\User;
|
||||
|
||||
class GrabySiteConfigBuilder implements SiteConfigBuilder
|
||||
{
|
||||
@ -13,26 +15,36 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
|
||||
* @var ConfigBuilder
|
||||
*/
|
||||
private $grabyConfigBuilder;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @var SiteCredentialRepository
|
||||
*/
|
||||
private $credentials;
|
||||
private $credentialRepository;
|
||||
|
||||
/**
|
||||
* @var LoggerInterface
|
||||
*/
|
||||
private $logger;
|
||||
|
||||
/**
|
||||
* @var User
|
||||
*/
|
||||
private $currentUser;
|
||||
|
||||
|
||||
/**
|
||||
* GrabySiteConfigBuilder constructor.
|
||||
*
|
||||
* @param ConfigBuilder $grabyConfigBuilder
|
||||
* @param array $credentials
|
||||
* @param ConfigBuilder $grabyConfigBuilder
|
||||
* @param User $currentUser
|
||||
* @param SiteCredentialRepository $credentialRepository
|
||||
* @param LoggerInterface $logger
|
||||
*/
|
||||
public function __construct(ConfigBuilder $grabyConfigBuilder, array $credentials, LoggerInterface $logger)
|
||||
public function __construct(ConfigBuilder $grabyConfigBuilder, User $currentUser, SiteCredentialRepository $credentialRepository, LoggerInterface $logger)
|
||||
{
|
||||
$this->grabyConfigBuilder = $grabyConfigBuilder;
|
||||
$this->credentials = $credentials;
|
||||
$this->credentialRepository = $credentialRepository;
|
||||
$this->currentUser = $currentUser;
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
@ -47,7 +59,9 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
|
||||
$host = substr($host, 4);
|
||||
}
|
||||
|
||||
if (empty($this->credentials[$host])) {
|
||||
$credentials = $this->credentialRepository->findOneByHostAndUser($host, $this->currentUser->getId());
|
||||
|
||||
if (null === $credentials) {
|
||||
$this->logger->debug('Auth: no credentials available for host.', ['host' => $host]);
|
||||
|
||||
return false;
|
||||
@ -62,8 +76,8 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
|
||||
'passwordField' => $config->login_password_field ?: null,
|
||||
'extraFields' => $this->processExtraFields($config->login_extra_fields),
|
||||
'notLoggedInXpath' => $config->not_logged_in_xpath ?: null,
|
||||
'username' => $this->credentials[$host]['username'],
|
||||
'password' => $this->credentials[$host]['password'],
|
||||
'username' => $credentials['username'],
|
||||
'password' => $credentials['password'],
|
||||
];
|
||||
|
||||
$config = new SiteConfig($parameters);
|
||||
|
||||
Reference in New Issue
Block a user