<?php
namespace App\Controller;
use App\Entity\User;
use JetBrains\PhpStorm\ArrayShape;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Annotation\Route;
class GeneralController extends AbstractController
{
/**
* @return array<string, mixed>
*/
#[Route('/', name: 'app_homepage')]
#[Template('homepage.html.twig')]
public function homepage(): array
{
return [];
}
#[ArrayShape(['hei' => "\App\Entity\Hei"])]
#[Route('/landing', name: 'app_landing')]
public function landing(): RedirectResponse
{
/**
* @var User $currentUser
*/
$currentUser = $this->getUser();
$currentUserRoles = $currentUser->getRoles();
if (in_array('ROLE_SUPER_ADMIN', $currentUserRoles)) {
return $this->redirectToRoute(
'admin'
);
} elseif (in_array('ROLE_HEI_STAFF', $currentUserRoles)) {
$firstHei = $currentUser->getStaff()->getHeis()->first();
return $this->redirectToRoute(
'app_hei_dashboard_staff',
['id' => $firstHei->getId()]
);
} elseif (in_array('ROLE_STUDENT', $currentUserRoles)) {
return $this->redirectToRoute(
'app_student_dashboard'
);
}
return $this->redirectToRoute('app_homepage');
}
}