From: Nicolas LÅ“uillet Date: Sat, 11 Apr 2020 12:01:00 +0000 (+0200) Subject: Added authentication during import command for paywalled websites X-Git-Url: https://git.immae.eu/?p=github%2Fwallabag%2Fwallabag.git;a=commitdiff_plain;h=607e1a1a13d0aaf625ff760aa094f970f2924757 Added authentication during import command for paywalled websites --- diff --git a/src/Wallabag/ImportBundle/Command/ImportCommand.php b/src/Wallabag/ImportBundle/Command/ImportCommand.php index f9ffe994..26903e9c 100644 --- a/src/Wallabag/ImportBundle/Command/ImportCommand.php +++ b/src/Wallabag/ImportBundle/Command/ImportCommand.php @@ -8,6 +8,7 @@ use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; class ImportCommand extends ContainerAwareCommand { @@ -38,15 +39,25 @@ class ImportCommand extends ContainerAwareCommand $em->getConnection()->getConfiguration()->setSQLLogger(null); if ($input->getOption('useUserId')) { - $user = $em->getRepository('WallabagUserBundle:User')->findOneById($input->getArgument('username')); + $entityUser = $em->getRepository('WallabagUserBundle:User')->findOneById($input->getArgument('username')); } else { - $user = $em->getRepository('WallabagUserBundle:User')->findOneByUsername($input->getArgument('username')); + $entityUser = $em->getRepository('WallabagUserBundle:User')->findOneByUsername($input->getArgument('username')); } - if (!\is_object($user)) { + if (!\is_object($entityUser)) { throw new Exception(sprintf('User "%s" not found', $input->getArgument('username'))); } + // Authenticate user for paywalled websites + $token = new UsernamePasswordToken( + $entityUser, + null, + 'main', + $entityUser->getRoles()); + + $this->getContainer()->get('security.token_storage')->setToken($token); + $user = $this->getContainer()->get('security.token_storage')->getToken()->getUser(); + switch ($input->getOption('importer')) { case 'v2': $import = $this->getContainer()->get('wallabag_import.wallabag_v2.import');