From af31cfed769538fcb7d283cb1fad80ac8d07b663 Mon Sep 17 00:00:00 2001 From: Nicolas Hart Date: Sun, 30 Jul 2017 22:04:29 +0200 Subject: Add list user command --- .../CoreBundle/Command/ListUserCommand.php | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/Wallabag/CoreBundle/Command/ListUserCommand.php (limited to 'src/Wallabag/CoreBundle') diff --git a/src/Wallabag/CoreBundle/Command/ListUserCommand.php b/src/Wallabag/CoreBundle/Command/ListUserCommand.php new file mode 100644 index 00000000..852e93b7 --- /dev/null +++ b/src/Wallabag/CoreBundle/Command/ListUserCommand.php @@ -0,0 +1,43 @@ +setName('wallabag:user:list') + ->setDescription('List all users') + ->setHelp('This command list all existing users') + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $io = new SymfonyStyle($input, $output); + + $users = $this->getContainer()->get('wallabag_user.user_repository')->findAll(); + + $rows = []; + foreach ($users as $user) { + $rows[] = [ + $user->getUsername(), + $user->getEmail(), + $user->isEnabled() ? 'yes' : 'no', + $user->hasRole('ROLE_SUPER_ADMIN') || $user->hasRole('ROLE_ADMIN') ? 'yes' : 'no', + ]; + } + + $io->table(['username', 'email', 'is enabled?', 'is admin?'], $rows); + + $io->success(sprintf('%s user(s) displayed.', count($users))); + + return 0; + } +} -- cgit v1.2.3 From f7a4b441361404b378c30b7788b3699c208537ad Mon Sep 17 00:00:00 2001 From: Nicolas Hart Date: Mon, 31 Jul 2017 23:20:41 +0200 Subject: add search argument and limit option to list users command --- .../CoreBundle/Command/ListUserCommand.php | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/Wallabag/CoreBundle') diff --git a/src/Wallabag/CoreBundle/Command/ListUserCommand.php b/src/Wallabag/CoreBundle/Command/ListUserCommand.php index 852e93b7..20660d18 100644 --- a/src/Wallabag/CoreBundle/Command/ListUserCommand.php +++ b/src/Wallabag/CoreBundle/Command/ListUserCommand.php @@ -3,7 +3,9 @@ namespace Wallabag\CoreBundle\Command; use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; +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\Console\Style\SymfonyStyle; @@ -15,6 +17,8 @@ class ListUserCommand extends ContainerAwareCommand ->setName('wallabag:user:list') ->setDescription('List all users') ->setHelp('This command list all existing users') + ->addArgument('search', InputArgument::OPTIONAL, 'Filter list by given search term') + ->addOption('limit', 'l', InputOption::VALUE_REQUIRED, 'Max number of displayed users', 100) ; } @@ -22,7 +26,14 @@ class ListUserCommand extends ContainerAwareCommand { $io = new SymfonyStyle($input, $output); - $users = $this->getContainer()->get('wallabag_user.user_repository')->findAll(); + $users = $this->getContainer()->get('wallabag_user.user_repository') + ->getQueryBuilderForSearch($input->getArgument('search')) + ->setMaxResults($input->getOption('limit')) + ->getQuery() + ->getResult(); + + $nbUsers = $this->getContainer()->get('wallabag_user.user_repository') + ->getSumUsers(); $rows = []; foreach ($users as $user) { @@ -36,7 +47,14 @@ class ListUserCommand extends ContainerAwareCommand $io->table(['username', 'email', 'is enabled?', 'is admin?'], $rows); - $io->success(sprintf('%s user(s) displayed.', count($users))); + $io->success( + sprintf( + '%s/%s%s user(s) displayed.', + count($users), + $nbUsers, + $input->getArgument('search') === null ? '' : ' (filtered)' + ) + ); return 0; } -- cgit v1.2.3