<?php
/**
* Copyright (c) 2019-2022, MND Next GmbH - www.mndnext.de
*/
namespace App\Controller;
use App\Entity\Admin;
use App\EventListener\LocaleListener;
use FOS\UserBundle\Model\UserManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Routing\Annotation\Route;
class MainController extends AbstractController
{
/** @var UserManagerInterface */
private $userManager;
/** @var MailerInterface */
private $mailer;
public function __construct(UserManagerInterface $userManager, MailerInterface $mailer)
{
$this->userManager = $userManager;
$this->mailer = $mailer;
}
/**
* @Route("/")
*/
public function index(Request $request)
{
$user = $this->getUser();
if (!$user) {
$response = $this->redirect('/login');
if ($request->isMethod('GET')) {
$locale = $request->get('locale');
if ($locale) {
$cookie = new Cookie(LocaleListener::COOKIE, $locale, strtotime('+1 month'), '/');
$response->headers->setCookie($cookie);
}
}
return $response;
} elseif ($this->isGranted('ROLE_ADMIN')) {
return $this->redirect('/admin');
} else {
return $this->redirect('/profile/');
}
}
/**
* @Route("/filestorage/{path}", requirements={"path"=".+"})
*/
public function filestorage($path, Request $request)
{
if (!$this->isGranted(Admin::ROLE_ADMIN)) {
return $this->redirect('/');
}
return $this->file(str_replace('/public', '', $request->server->get('DOCUMENT_ROOT')) . '/filestorage/' . $path);
}
}