feat : audit log (table + writer + listener + API + admin UI + timeline) #9
@@ -0,0 +1 @@
|
|||||||
|
src/Module/Core/Infrastructure/Console/SeedE2ECommand.php
|
||||||
@@ -9,7 +9,7 @@ use App\Module\Core\Domain\Repository\PermissionRepositoryInterface;
|
|||||||
use App\Module\Core\Domain\Repository\RoleRepositoryInterface;
|
use App\Module\Core\Domain\Repository\RoleRepositoryInterface;
|
||||||
use App\Module\Core\Domain\Repository\UserRepositoryInterface;
|
use App\Module\Core\Domain\Repository\UserRepositoryInterface;
|
||||||
use App\Module\Core\Domain\Security\SystemRoles;
|
use App\Module\Core\Domain\Security\SystemRoles;
|
||||||
use App\Module\Sites\Domain\Repository\SiteRepositoryInterface;
|
use App\Shared\Domain\Contract\SiteProviderInterface;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
use Symfony\Component\Console\Attribute\AsCommand;
|
use Symfony\Component\Console\Attribute\AsCommand;
|
||||||
@@ -50,7 +50,7 @@ final class SeedE2ECommand extends Command
|
|||||||
private readonly UserRepositoryInterface $userRepository,
|
private readonly UserRepositoryInterface $userRepository,
|
||||||
private readonly RoleRepositoryInterface $roleRepository,
|
private readonly RoleRepositoryInterface $roleRepository,
|
||||||
private readonly PermissionRepositoryInterface $permissionRepository,
|
private readonly PermissionRepositoryInterface $permissionRepository,
|
||||||
private readonly SiteRepositoryInterface $siteRepository,
|
private readonly SiteProviderInterface $siteProvider,
|
||||||
private readonly UserPasswordHasherInterface $passwordHasher,
|
private readonly UserPasswordHasherInterface $passwordHasher,
|
||||||
) {
|
) {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@@ -60,6 +60,17 @@ final class SeedE2ECommand extends Command
|
|||||||
{
|
{
|
||||||
$io = new SymfonyStyle($input, $output);
|
$io = new SymfonyStyle($input, $output);
|
||||||
|
|
||||||
|
// Garde-fou : cette commande cree un compte admin avec un mot de passe
|
||||||
|
// hardcode. Elle ne doit JAMAIS tourner hors dev/test, meme si le
|
||||||
|
// fichier se retrouve embarque dans une image prod par accident (le
|
||||||
|
// .dockerignore a la racine est la premiere ligne de defense).
|
||||||
|
$env = $_SERVER['APP_ENV'] ?? 'prod';
|
||||||
|
if (!in_array($env, ['dev', 'test'], true)) {
|
||||||
|
$io->error(sprintf('app:seed-e2e est refuse en environnement "%s". Autorise uniquement en dev/test.', $env));
|
||||||
|
|
||||||
|
return Command::FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
$userRole = $this->roleRepository->findByCode(SystemRoles::USER_CODE);
|
$userRole = $this->roleRepository->findByCode(SystemRoles::USER_CODE);
|
||||||
|
|
||||||
if (null === $userRole) {
|
if (null === $userRole) {
|
||||||
@@ -71,7 +82,7 @@ final class SeedE2ECommand extends Command
|
|||||||
return Command::FAILURE;
|
return Command::FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
$defaultSite = $this->siteRepository->findByName(self::DEFAULT_SITE_NAME);
|
$defaultSite = $this->siteProvider->findByName(self::DEFAULT_SITE_NAME);
|
||||||
|
|
||||||
// Pas de fail fatal si le site manque : les tests sidebar/login
|
// Pas de fail fatal si le site manque : les tests sidebar/login
|
||||||
// n'en dependent pas. Les tests sites-scope-bypass (a venir) le feront.
|
// n'en dependent pas. Les tests sites-scope-bypass (a venir) le feront.
|
||||||
|
|||||||
Reference in New Issue
Block a user