fix(audit-log) : clamp page minimum a 1 dans AuditLogProvider

API Platform 4 valide deja `page >= 1` en amont (rejette en 400) avant que
le provider ne soit appele. Le clamp `max(1, $page)` reste en place comme
defense-in-depth si un futur upgrade ou une modification de configuration
leve cette validation : garantit qu'aucune `page=0` ne produira de
SQLSTATE[22023] OFFSET must not be negative.
This commit is contained in:
2026-05-02 17:18:16 +02:00
parent 2645a335c4
commit c09501d321

View File

@@ -68,7 +68,11 @@ final readonly class AuditLogProvider implements ProviderInterface
*/
private function provideCollection(Operation $operation, array $context): DbalPaginator
{
$page = $this->pagination->getPage($context);
// `page` brut peut etre <= 0 (parametre client) → OFFSET negatif → 500 PG
// (`SQLSTATE[22023] OFFSET must not be negative`). API Platform clampe
// `itemsPerPage` au max de la resource mais pas `page` ; on impose un
// minimum a 1 cote provider.
$page = max(1, $this->pagination->getPage($context));
$itemsPerPage = $this->pagination->getLimit($operation, $context);
$offset = ($page - 1) * $itemsPerPage;
$filters = $this->extractFilters($context['filters'] ?? []);