getUser(); $isAdmin = $this->isGranted('ROLE_ADMIN'); if ($request->isMethod('POST')) { if ($request->request->has('create_session')) { $gameId = $request->request->get('game_id'); $game = $gameRepository->find($gameId); if ($game) { if ($dashboardService->createSession($game, $user, $isAdmin)) { $this->addFlash('success', 'New session created!'); } } } elseif ($request->request->has('create_invite')) { $sessionId = $request->request->get('session_id'); $session = $sessionRepository->find($sessionId); if (!$session) { $this->addFlash('error', 'Session not found.'); return $this->redirectToRoute('game_dashboard'); } $inviteCode = $dashboardService->generateInviteCode($session, $user, $isAdmin); if ($inviteCode) { $this->addFlash('success', 'Invite link created: ' . $inviteCode); } } return $this->redirectToRoute('game_dashboard'); } return $this->render('game/dashboard.html.twig', [ 'sessions' => $dashboardService->getSessionsForUser($user), 'availableGames' => $dashboardService->getAvailableGames($isAdmin), ]); } #[Route(path: '/{session}', name: 'game')] #[IsGranted(new Expression("is_granted('ROLE_PLAYER') or is_granted('ROLE_ADMIN')"))] #[IsGranted('SESSION_VIEW', subject: 'session')] public function index( Session $session): Response { return $this->render('game/index.html.twig', ['session' => $session]); } }