added username parameter to export command (#3638)

This commit is contained in:
Kevin Papst
2022-11-19 18:38:13 +01:00
committed by GitHub
parent e413325337
commit 4f698f73dc
2 changed files with 16 additions and 10 deletions

View File

@@ -68,6 +68,7 @@ class ExportCreateCommand extends Command
->setName('kimai:export:create') ->setName('kimai:export:create')
->setDescription('Create exports') ->setDescription('Create exports')
->setHelp('Create exports by several different filters and sent them via email.') ->setHelp('Create exports by several different filters and sent them via email.')
->addOption('username', null, InputOption::VALUE_REQUIRED, 'The user to be used for generating the export (e.g. used for permissions and decimal setting)')
->addOption('start', null, InputOption::VALUE_OPTIONAL, 'Start date (format: 2020-01-01, default: start of the month)', null) ->addOption('start', null, InputOption::VALUE_OPTIONAL, 'Start date (format: 2020-01-01, default: start of the month)', null)
->addOption('end', null, InputOption::VALUE_OPTIONAL, 'End date (format: 2020-01-31, default: end of the month)', null) ->addOption('end', null, InputOption::VALUE_OPTIONAL, 'End date (format: 2020-01-31, default: end of the month)', null)
->addOption('timezone', null, InputOption::VALUE_OPTIONAL, 'Timezone for start and end date query (fallback: server timezone)', null) ->addOption('timezone', null, InputOption::VALUE_OPTIONAL, 'Timezone for start and end date query (fallback: server timezone)', null)
@@ -236,14 +237,21 @@ class ExportCreateCommand extends Command
$body = trim($input->getOption('body')); $body = trim($input->getOption('body'));
} }
$markAsExported = false; $query = new ExportQuery();
if ($input->getOption('set-exported')) {
$markAsExported = true; $username = $input->getOption('username');
if (!empty($username)) {
$user = $this->userRepository->loadUserByUsername($username);
if (null === $user) {
$io->error(
sprintf('The given username "%s" could not be resolved', $username)
);
return 1;
}
$query->setCurrentUser($user);
} }
// =============== VALIDATION END ===============
$query = new ExportQuery();
$query->setBegin($start); $query->setBegin($start);
$query->setEnd($end); $query->setEnd($end);
$query->setExported($exportedFilter); $query->setExported($exportedFilter);
@@ -253,8 +261,6 @@ class ExportCreateCommand extends Command
foreach ($users as $user) { foreach ($users as $user) {
$query->addUser($user); $query->addUser($user);
} }
//$query->setRenderer($template);
//$query->setMarkAsExported($markAsExported);
$io = new SymfonyStyle($input, $output); $io = new SymfonyStyle($input, $output);
@@ -268,7 +274,7 @@ class ExportCreateCommand extends Command
$response = $renderer->render($entries, $query); $response = $renderer->render($entries, $query);
$file = $this->savePreview($response, $directory); $file = $this->savePreview($response, $directory);
if ($markAsExported) { if ($input->getOption('set-exported')) {
$this->serviceExport->setExported($entries); $this->serviceExport->setExported($entries);
} }

View File

@@ -209,7 +209,7 @@ class ExportCreateCommandTest extends KernelTestCase
$data = $this->prepareFixtures($start); $data = $this->prepareFixtures($start);
$commandTester = $this->createExport(['--template' => 'csv', '--customer' => [$data[0]->getId()], '--start' => $start->format('Y-m-d'), '--end' => $end->format('Y-m-d')]); $commandTester = $this->createExport(['--template' => 'csv', '--customer' => [$data[0]->getId()], '--start' => $start->format('Y-m-d'), '--end' => $end->format('Y-m-d'), '--username' => UserFixtures::USERNAME_SUPER_ADMIN]);
$output = $commandTester->getDisplay(); $output = $commandTester->getDisplay();
$this->assertStringContainsString('Saved export to: ', $output); $this->assertStringContainsString('Saved export to: ', $output);