src/Controller/MainController.php line 35

Open in your IDE?
  1. <?php
  2. /**
  3.  * Copyright (c) 2019-2022, MND Next GmbH - www.mndnext.de
  4.  */
  5. namespace App\Controller;
  6. use App\Entity\Admin;
  7. use App\EventListener\LocaleListener;
  8. use FOS\UserBundle\Model\UserManagerInterface;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Cookie;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\Mailer\MailerInterface;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. class MainController extends AbstractController
  15. {
  16.     /** @var UserManagerInterface */
  17.     private $userManager;
  18.     /** @var MailerInterface */
  19.     private $mailer;
  20.     public function __construct(UserManagerInterface $userManagerMailerInterface $mailer)
  21.     {
  22.         $this->userManager $userManager;
  23.         $this->mailer $mailer;
  24.     }
  25.     /**
  26.      * @Route("/")
  27.      */
  28.     public function index(Request $request)
  29.     {
  30.         $user $this->getUser();
  31.         if (!$user) {
  32.             $response $this->redirect('/login');
  33.             if ($request->isMethod('GET')) {
  34.                 $locale $request->get('locale');
  35.                 if ($locale) {
  36.                     $cookie = new Cookie(LocaleListener::COOKIE$localestrtotime('+1 month'), '/');
  37.                     $response->headers->setCookie($cookie);
  38.                 }
  39.             }
  40.             return $response;
  41.         } elseif ($this->isGranted('ROLE_ADMIN')) {
  42.             return $this->redirect('/admin');
  43.         } else {
  44.             return $this->redirect('/profile/');
  45.         }
  46.     }
  47.     /**
  48.      * @Route("/filestorage/{path}", requirements={"path"=".+"})
  49.      */
  50.     public function filestorage($pathRequest $request)
  51.     {
  52.         if (!$this->isGranted(Admin::ROLE_ADMIN)) {
  53.             return $this->redirect('/');
  54.         }
  55.         return $this->file(str_replace('/public'''$request->server->get('DOCUMENT_ROOT')) . '/filestorage/' $path);
  56.     }
  57. }