feat: bouton purge des logs pour ROLE_ROOT
src/Controller/Admin/LogsController.php: - Nouvelle route POST /admin/logs/purge: supprime tous les AppLog via requete DQL DELETE, accessible uniquement ROLE_ROOT (le controller entier est deja protege par ROLE_ROOT) templates/admin/logs/index.html.twig: - Bouton "Supprimer tous les logs" en haut a droite, rouge, visible uniquement pour ROLE_ROOT - Confirmation data-confirm avant suppression Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
use Symfony\Component\Security\Http\Attribute\IsGranted;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Twig\Environment;
|
||||
|
||||
#[Route('/admin/logs', name: 'app_admin_logs')]
|
||||
@@ -46,6 +47,19 @@ class LogsController extends AbstractController
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route('/purge', name: '_purge', methods: ['POST'])]
|
||||
public function purge(EntityManagerInterface $em): Response
|
||||
{
|
||||
$deleted = $em->createQueryBuilder()
|
||||
->delete('App\Entity\AppLog', 'l')
|
||||
->getQuery()
|
||||
->execute();
|
||||
|
||||
$this->addFlash('success', $deleted.' log(s) supprime(s).');
|
||||
|
||||
return $this->redirectToRoute('app_admin_logs');
|
||||
}
|
||||
|
||||
#[Route('/{id}/pdf', name: '_pdf', methods: ['GET'])]
|
||||
public function pdf(
|
||||
int $id,
|
||||
|
||||
@@ -4,7 +4,14 @@
|
||||
|
||||
{% block admin_content %}
|
||||
<div class="page-container">
|
||||
<h1 class="text-2xl font-bold heading-page mb-8">Logs d'activite</h1>
|
||||
<div class="flex items-center justify-between mb-8">
|
||||
<h1 class="text-2xl font-bold heading-page">Logs d'activite</h1>
|
||||
{% if is_granted('ROLE_ROOT') %}
|
||||
<form method="post" action="{{ path('app_admin_logs_purge') }}" data-confirm="Supprimer tous les logs ? Cette action est irreversible.">
|
||||
<button type="submit" class="btn-glass px-4 py-2 text-red-600 text-xs font-bold uppercase tracking-wider" style="border-color: rgba(220,38,38,0.3);">Supprimer tous les logs</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="glass overflow-hidden">
|
||||
<table class="w-full text-xs">
|
||||
|
||||
Reference in New Issue
Block a user