chore: initial import for test contour with k3s CI

This commit is contained in:
sova-bootstrap
2026-05-28 12:09:28 +03:00
commit d77d0a872f
423 changed files with 35401 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
<?php
namespace App\Command;
use App\Service\UserCleanupService;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
class UserCleanupCommand extends Command
{
private $userCleanupService;
public function __construct(UserCleanupService $userCleanupService)
{
parent::__construct();
$this->userCleanupService = $userCleanupService;
}
protected static $defaultName = 'app:user:cleanup';
protected static $defaultDescription = 'Удаляет пользователей с только ROLE_USER после истечения времени жизни кукисов';
protected function configure(): void
{
$this
->setDescription(self::$defaultDescription)
->addOption('dry-run', null, InputOption::VALUE_NONE, 'Показать, какие пользователи будут удалены, без фактического удаления')
;
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$dryRun = $input->getOption('dry-run');
if ($dryRun) {
$io->note('Режим проверки (dry-run). Пользователи не будут удалены.');
}
$io->title('Очистка пользователей');
try {
if ($dryRun) {
$io->note('Режим проверки (dry-run). Пользователи не будут удалены.');
// В dry-run режиме просто показываем сколько будет удалено
// Но для этого нужно добавить метод в сервис или просто запустить и показать результат
}
$deletedCount = $this->userCleanupService->cleanupExpiredUsers();
if ($dryRun) {
$io->success(sprintf('Найдено пользователей для удаления: %d', $deletedCount));
} else {
$io->success(sprintf('Успешно удалено пользователей: %d', $deletedCount));
}
return Command::SUCCESS;
} catch (\Exception $e) {
$io->error(sprintf('Ошибка при выполнении очистки: %s', $e->getMessage()));
$io->error($e->getTraceAsString());
return Command::FAILURE;
}
}
}