private readonly AdminSearcher
$searcher,
private readonly DecoderInterface
$serializer,
private readonly AclCriteriaValidator
$criteriaValidator,
private readonly DefinitionInstanceRegistry
$definitionRegistry,
private readonly JsonEntityEncoder
$entityEncoder ) { } #[Route(path: '/api/_admin/search', name: 'api.admin.search', defaults: ['_routeScope' => ['administration']], methods: ['POST'])]
public function search(Request
$request, Context
$context): Response
{ $criteriaCollection =
$this->
buildSearchEntities($request,
$context);
$violations =
[];
foreach ($criteriaCollection as $entity =>
$criteria) { $missing =
$this->criteriaValidator->
validate($entity,
$criteria,
$context);
if (!
empty($missing)) { $violations[$entity] =
(new MissingPrivilegeException($missing))->
getErrors()->
current();
$criteriaCollection->
remove($entity);
} }