loginHandler->isLoggedIn()) { throw new UnauthorizedException(); } $user = $this->loginHandler->getCurrentUser(); if (!$user->getPermission()->hasLevel(UserPermission::PROVIDER)) { throw new ForbiddenException(); } $searchQuery = $request->getQueryParams()['query'] ?? ''; $repo = $this->entityManager->getRepository(User::class); $criteria = Criteria::create(); $criteria->where(Criteria::expr()->contains('name', $searchQuery)); $criteria->setMaxResults(10); $values = $repo->matching($criteria); return new JsonResponse( $values ->filter(fn ($value) => $value !== $user) ->map(function (User $user) { return [ 'value' => $user->getId(), 'label' => $user->getName() ]; }) ->toArray() ); } }