Skip to content

Commit 523ad57

Browse files
Internal: Fix missing course association in CourseRelUser
1 parent 09ca69d commit 523ad57

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/CoreBundle/DataProvider/Extension/CourseRelUserExtension.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Chamilo\CoreBundle\Entity\CourseRelUser;
1414
use Chamilo\CoreBundle\Entity\User;
1515
use Chamilo\CoreBundle\ServiceHelper\AccessUrlHelper;
16+
use Doctrine\ORM\EntityManagerInterface;
1617
use Doctrine\ORM\QueryBuilder;
1718
use Symfony\Bundle\SecurityBundle\Security;
1819
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
@@ -21,7 +22,8 @@ final class CourseRelUserExtension implements QueryCollectionExtensionInterface
2122
{
2223
public function __construct(
2324
private readonly Security $security,
24-
private readonly AccessUrlHelper $accessUrlHelper
25+
private readonly AccessUrlHelper $accessUrlHelper,
26+
private readonly EntityManagerInterface $entityManager
2527
) {}
2628

2729
public function applyToCollection(
@@ -45,11 +47,14 @@ public function applyToCollection(
4547
->andWhere('url_rel.url = :access_url_id')
4648
->setParameter('access_url_id', $accessUrl->getId());
4749
} else {
48-
$queryBuilder
49-
->innerJoin("$rootAlias.course", 'c')
50-
->innerJoin('c.urls', 'url_rel')
51-
->andWhere('url_rel.url = :access_url_id')
52-
->setParameter('access_url_id', $accessUrl->getId());
50+
$metaData = $this->entityManager->getClassMetadata($resourceClass);
51+
if ($metaData->hasAssociation('course')) {
52+
$queryBuilder
53+
->innerJoin("$rootAlias.course", 'c')
54+
->innerJoin('c.urls', 'url_rel')
55+
->andWhere('url_rel.url = :access_url_id')
56+
->setParameter('access_url_id', $accessUrl->getId());
57+
}
5358
}
5459
}
5560

0 commit comments

Comments
 (0)