Skip to content

Commit 3dde14a

Browse files
committed
fix: correct escape filter condition
1 parent d9bc540 commit 3dde14a

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

src/Doctrine/Odm/Filter/OrderFilter.php

+5-3
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,11 @@ public function __construct(?ManagerRegistry $managerRegistry = null, string $or
230230
*/
231231
public function apply(Builder $aggregationBuilder, string $resourceClass, ?Operation $operation = null, array &$context = []): void
232232
{
233-
if (!isset($context['filters'][$this->orderParameterName]) || !\is_array($context['filters'][$this->orderParameterName])) {
234-
parent::apply($aggregationBuilder, $resourceClass, $operation, $context);
235-
233+
if (
234+
isset($context['filters'])
235+
&& (!isset($context['filters'][$this->orderParameterName]) || !\is_array($context['filters'][$this->orderParameterName]))
236+
&& !isset($context['parameter'])
237+
) {
236238
return;
237239
}
238240

src/Doctrine/Orm/Filter/OrderFilter.php

+11-2
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,17 @@ public function __construct(?ManagerRegistry $managerRegistry = null, string $or
229229
*/
230230
public function apply(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, ?Operation $operation = null, array $context = []): void
231231
{
232-
if (!isset($context['filters'][$this->orderParameterName]) || !\is_array($context['filters'][$this->orderParameterName])) {
233-
parent::apply($queryBuilder, $queryNameGenerator, $resourceClass, $operation, $context);
232+
if (
233+
isset($context['filters'])
234+
&& (!isset($context['filters'][$this->orderParameterName]) || !\is_array($context['filters'][$this->orderParameterName]))
235+
&& !isset($context['parameter'])
236+
) {
237+
return;
238+
}
239+
240+
$parameter = $context['parameter'] ?? null;
241+
if (null !== ($value = $context['filters'][$parameter?->getProperty()] ?? null)) {
242+
$this->filterProperty($this->denormalizePropertyName($parameter->getProperty()), $value, $queryBuilder, $queryNameGenerator, $resourceClass, $operation, $context);
234243

235244
return;
236245
}

0 commit comments

Comments
 (0)