src/Controller/GeneralController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use JetBrains\PhpStorm\ArrayShape;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\RedirectResponse;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. class GeneralController extends AbstractController
  10. {
  11.     /**
  12.      * @return array<string, mixed>
  13.      */
  14.     #[Route('/'name'app_homepage')]
  15.     #[Template('homepage.html.twig')]
  16.     public function homepage(): array
  17.     {
  18.         return [];
  19.     }
  20.     #[ArrayShape(['hei' => "\App\Entity\Hei"])]
  21.     #[Route('/landing'name'app_landing')]
  22.     public function landing(): RedirectResponse
  23.     {
  24.         /**
  25.          * @var User $currentUser
  26.          */
  27.         $currentUser $this->getUser();
  28.         $currentUserRoles $currentUser->getRoles();
  29.         if (in_array('ROLE_SUPER_ADMIN'$currentUserRoles)) {
  30.             return $this->redirectToRoute(
  31.                 'admin'
  32.             );
  33.         } elseif (in_array('ROLE_HEI_STAFF'$currentUserRoles)) {
  34.             $firstHei $currentUser->getStaff()->getHeis()->first();
  35.             return $this->redirectToRoute(
  36.                 'app_hei_dashboard_staff',
  37.                 ['id' => $firstHei->getId()]
  38.             );
  39.         } elseif (in_array('ROLE_STUDENT'$currentUserRoles)) {
  40.             return $this->redirectToRoute(
  41.                 'app_student_dashboard'
  42.             );
  43.         }
  44.         return $this->redirectToRoute('app_homepage');
  45.     }
  46. }