Skip to content

Commit

Permalink
[Event] inject magic link for live alert (#11453)
Browse files Browse the repository at this point in the history
  • Loading branch information
ottaviano committed Feb 10, 2025
1 parent 0cbc1de commit 4276d6e
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 9 deletions.
10 changes: 6 additions & 4 deletions src/Controller/Renaissance/LiveStreamController.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,13 @@ public function liveStreamAction(LiveStream $liveStream, UserInterface $user): R
#[Route('/live-event/{slug}', name: 'app_live_event', methods: ['GET'])]
public function liveEventAction(Request $request, OAuthAuthenticator $authAuthenticator, Event $event): Response
{
$newRequest = $request->duplicate([]);
$newRequest->headers->set('Authorization', 'Bearer '.$request->query->get('token'));
if (!($user = $this->getUser()) instanceof Adherent) {
$newRequest = $request->duplicate([]);
$newRequest->headers->set('Authorization', 'Bearer '.$request->query->get('token'));

/** @var Adherent $user */
$user = $authAuthenticator->authenticate($newRequest)->getUser();
/** @var Adherent $user */
$user = $authAuthenticator->authenticate($newRequest)->getUser();
}

if (!$user->isRenaissanceAdherent()) {
$this->addFlash('info', 'Vous devez être adhérent pour accéder à cet événement.');
Expand Down
4 changes: 2 additions & 2 deletions src/JeMengage/Alert/Alert.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public static function createElection(
);
}

public static function createLive(Event $event): self
public static function createLive(Event $event, string $url): self
{
$now = new \DateTimeImmutable();

Expand All @@ -46,7 +46,7 @@ public static function createLive(Event $event): self
$event->getName(),
'',
'Voir',
'/evenements/'.$event->getSlug(),
$url,
);
}
}
22 changes: 19 additions & 3 deletions src/JeMengage/Alert/Provider/LiveAlertProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,16 @@
use App\Entity\Adherent;
use App\JeMengage\Alert\Alert;
use App\Repository\Event\EventRepository;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Http\LoginLink\LoginLinkHandlerInterface;

class LiveAlertProvider implements AlertProviderInterface
{
public function __construct(private readonly EventRepository $eventRepository)
{
public function __construct(
private readonly EventRepository $eventRepository,
private readonly LoginLinkHandlerInterface $loginLinkHandler,
private readonly UrlGeneratorInterface $urlGenerator,
) {
}

public function getAlerts(Adherent $adherent): array
Expand All @@ -19,9 +24,20 @@ public function getAlerts(Adherent $adherent): array
}

$alerts = [];
$now = new \DateTimeImmutable();

foreach ($events as $event) {
$alerts[] = Alert::createLive($event);
$url = '/evenements/'.$event->getSlug();

if ($adherent->getAuthAppVersion() < 5140101 && $event->getBeginAt() < $now) {
$url = $this->loginLinkHandler->createLoginLink(
$adherent,
lifetime: 3600,
targetPath: parse_url($this->urlGenerator->generate('app_live_event', ['slug' => $event->getSlug()], UrlGeneratorInterface::ABSOLUTE_URL), \PHP_URL_PATH),
)->getUrl();
}

$alerts[] = Alert::createLive($event, $url);
}

return $alerts;
Expand Down

0 comments on commit 4276d6e

Please sign in to comment.