]>
Commit | Line | Data |
---|---|---|
d143fa24 TC |
1 | <?php |
2 | ||
3 | namespace Wallabag\CoreBundle\Command; | |
4 | ||
5 | use Doctrine\ORM\NoResultException; | |
6 | use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; | |
7 | use Symfony\Component\Console\Input\InputArgument; | |
8 | use Symfony\Component\Console\Input\InputInterface; | |
9 | use Symfony\Component\Console\Output\OutputInterface; | |
10 | use Wallabag\UserBundle\Entity\User; | |
11 | ||
12 | class ShowUserCommand extends ContainerAwareCommand | |
13 | { | |
14 | /** @var OutputInterface */ | |
15 | protected $output; | |
16 | ||
17 | protected function configure() | |
18 | { | |
19 | $this | |
20 | ->setName('wallabag:user:show') | |
21 | ->setDescription('Show user details') | |
22 | ->setHelp('This command shows the details for an user') | |
23 | ->addArgument( | |
24 | 'username', | |
25 | InputArgument::REQUIRED, | |
26 | 'User to show details for' | |
27 | ); | |
28 | } | |
29 | ||
30 | protected function execute(InputInterface $input, OutputInterface $output) | |
31 | { | |
32 | $this->output = $output; | |
33 | ||
34 | $username = $input->getArgument('username'); | |
35 | ||
36 | try { | |
37 | $user = $this->getUser($username); | |
38 | $this->showUser($user); | |
39 | } catch (NoResultException $e) { | |
40 | $output->writeln(sprintf('<error>User "%s" not found.</error>', $username)); | |
41 | ||
42 | return 1; | |
43 | } | |
44 | ||
45 | return 0; | |
46 | } | |
47 | ||
48 | /** | |
49 | * @param User $user | |
50 | */ | |
51 | private function showUser(User $user) | |
52 | { | |
53 | $this->output->writeln(sprintf('Username : %s', $user->getUsername())); | |
54 | $this->output->writeln(sprintf('Email : %s', $user->getEmail())); | |
55 | $this->output->writeln(sprintf('Display name : %s', $user->getName())); | |
0d8ecb82 TC |
56 | $this->output->writeln(sprintf('Creation date : %s', $user->getCreatedAt()->format('Y-m-d H:i:s'))); |
57 | $this->output->writeln(sprintf('Last login : %s', $user->getLastLogin() !== null ? $user->getLastLogin()->format('Y-m-d H:i:s') : 'never')); | |
58 | $this->output->writeln(sprintf('2FA activated: %s', $user->isTwoFactorAuthentication() ? 'yes' : 'no')); | |
d143fa24 TC |
59 | } |
60 | ||
61 | /** | |
62 | * Fetches a user from its username. | |
63 | * | |
64 | * @param string $username | |
65 | * | |
66 | * @return \Wallabag\UserBundle\Entity\User | |
67 | */ | |
68 | private function getUser($username) | |
69 | { | |
03ce43d4 | 70 | return $this->getContainer()->get('wallabag_user.user_repository')->findOneByUserName($username); |
d143fa24 TC |
71 | } |
72 | ||
73 | private function getDoctrine() | |
74 | { | |
75 | return $this->getContainer()->get('doctrine'); | |
76 | } | |
77 | } |