src/Controller/Admin/Tools/DashboardController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin\Tools;
  3. use App\Repository\MenuItemAdminRepository;
  4. use App\Service\Helpers;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\RequestStack;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\Security\Core\Security;
  11. class DashboardController extends AbstractController
  12. {
  13.     public function __construct(private RequestStack $requestStack,
  14.                                 private MenuItemAdminRepository $menuItemAdminRepository,
  15.                                 private Security $security,
  16.                                 private Helpers $helpers
  17.     ){}
  18.     #[Route('/admin/dashboard'name'app_admin_dashboard' ) , IsGranted('ROLE_ADMIN')]
  19.     public function index(): Response
  20.     {
  21.         $user $this->security->getUser();
  22.         $session $this->requestStack->getSession();
  23.         //if(!$session->has('menu')){ // Uncomment to get menu from session if exists.
  24.             if($this->isGranted('ROLE_SUPER_ADMIN')) {
  25.                 $menu_object $this->menuItemAdminRepository->findBy([], ['displayOrder' => 'ASC']);
  26.                 $menu $this->helpers->convert_ObjectArray_to_2DArray($menu_object);
  27.             }else{ // ROLE_ADMIN
  28.                 $profile $user->getPersonal()->getProfile();
  29.                 $menu $this->menuItemAdminRepository->find_innerJoin($profile->getId());
  30.             }
  31.             $menu_as_tree $this->helpers->buildTree($menu);
  32.             if(array_key_exists('ADMIN'$menu_as_tree))
  33.                 $session->set('menu' $menu_as_tree['ADMIN']['children']);
  34.         //}
  35.         return $this->render('admin/dashboard/index.html.twig', [
  36.             'controller_name' => 'DashboardController'
  37.         ]);
  38.     }
  39. }