addWhere($queryBuilder, $resourceClass); } /*public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void { error_log('applyToItem'); $this->addWhere($queryBuilder, $resourceClass); }*/ private function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void { if (Course::class !== $resourceClass) { return; } if ($this->security->isGranted('ROLE_ADMIN')) { return; } if (null === $user = $this->security->getUser()) { throw new AccessDeniedException('Access Denied.'); } $rootAlias = $queryBuilder->getRootAliases()[0]; $queryBuilder ->andWhere(sprintf('%s.visibility <> :visibility_hidden', $rootAlias)) ->setParameter('visibility_hidden', Course::HIDDEN) ; $queryBuilder ->andWhere(sprintf('%s.visibility <> :visibility_closed', $rootAlias)) ->setParameter('visibility_closed', Course::CLOSED) ; } }