Skip to content

Commit 779b066

Browse files
Merge pull request #5728 from christianbeeznest/ofaj-21551
Session: Integrated Asset URL Handling for API Image Display - refs BT#21551
2 parents 5d3f0a4 + a1a3e36 commit 779b066

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/CoreBundle/Entity/Listener/SessionListener.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
namespace Chamilo\CoreBundle\Entity\Listener;
88

99
use Chamilo\CoreBundle\Entity\Session;
10+
use Chamilo\CoreBundle\Repository\AssetRepository;
1011
use Chamilo\CoreBundle\Traits\AccessUrlListenerTrait;
1112
use Doctrine\ORM\Event\PrePersistEventArgs;
1213
use Doctrine\ORM\Event\PreUpdateEventArgs;
14+
use Doctrine\Persistence\Event\LifecycleEventArgs;
1315
use Exception;
1416
use Symfony\Bundle\SecurityBundle\Security;
1517
use Symfony\Component\HttpFoundation\RequestStack;
@@ -23,7 +25,8 @@ class SessionListener
2325

2426
public function __construct(
2527
protected RequestStack $request,
26-
protected Security $security
28+
protected Security $security,
29+
protected AssetRepository $assetRepository
2730
) {}
2831

2932
/**
@@ -46,6 +49,16 @@ public function prePersist(Session $session, PrePersistEventArgs $args): void
4649
// $this->checkLimit($repo, $url);
4750
}
4851

52+
/**
53+
* This code is executed when a session is loaded from the database.
54+
*/
55+
public function postLoad(Session $session, LifecycleEventArgs $args): void
56+
{
57+
if ($session->getImage()) {
58+
$session->setImageUrl($this->assetRepository->getAssetUrl($session->getImage()));
59+
}
60+
}
61+
4962
/**
5063
* This code is executed when a session is updated.
5164
*/

src/CoreBundle/Entity/Session.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,9 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
368368
#[ORM\JoinColumn(name: 'image_id', referencedColumnName: 'id', onDelete: 'SET NULL')]
369369
protected ?Asset $image = null;
370370

371+
#[Groups(['user_subscriptions:sessions', 'session:read', 'session:item:read', 'session:basic'])]
372+
private ?string $imageUrl = null;
373+
371374
#[Groups(['user_subscriptions:sessions', 'session:read', 'session:item:read'])]
372375
private int $accessVisibility = 0;
373376

@@ -1185,6 +1188,18 @@ public function hasImage(): bool
11851188
return null !== $this->image;
11861189
}
11871190

1191+
public function setImageUrl(?string $imageUrl): self
1192+
{
1193+
$this->imageUrl = $imageUrl;
1194+
1195+
return $this;
1196+
}
1197+
1198+
public function getImageUrl(): ?string
1199+
{
1200+
return $this->imageUrl;
1201+
}
1202+
11881203
/**
11891204
* Check if $user is course coach in any course.
11901205
*/

0 commit comments

Comments
 (0)