added username parameter to export command (#3638)
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user