<?php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RedirectResponse;
class DefaultController extends BaseController
{
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
if(!$this->session->get('magasin'))
{
$this->session->set('magasin', $this->utilisateur->getDefaultMagasin()->getId());
}
return $this->render('default/index.html.twig');
/*
$redirectTo = 'utilisateur_profile';
if($this->utilisateur->aDroit('module_statistique')) $redirectTo = 'statistiques_index';
elseif($this->utilisateur->aDroit('vente_consutlation')) $redirectTo = 'vente_index';
elseif($this->utilisateur->aDroit('achat_consutlation')) $redirectTo = 'achat_index';
elseif($this->utilisateur->aDroit('produit_consutlation')) $redirectTo = 'produit_index';
elseif($this->utilisateur->aDroit('reparation_consutlation')) $redirectTo = 'reparation_index';
return $this->redirectToRoute($redirectTo);
*/
}
/**
* @Route("/switchmagasin/{id}", name="switchmagasin")
*/
public function switchmagasinAction(Request $request, $id)
{
$referer = $request->headers->get('referer');
$redirectTo = $referer ?: $this->generateUrl('homepage');
// If no authenticated user, just bounce back
if (!$this->utilisateur) {
return new RedirectResponse($redirectTo);
}
$requestedId = (int) $id;
// If an id was provided, verify the user has access to that magasin
if ($requestedId > 0) {
$hasAccess = false;
foreach ($this->utilisateur->getMagasins() as $magasin) {
if ($magasin->getId() === $requestedId) {
$hasAccess = true;
break;
}
}
if ($hasAccess) {
// Switch to requested magasin
$this->session->set('magasin', $requestedId);
$this->session->set('alertstock', 1);
} else {
// Deny switch and notify user
$this->addFlash('error', "Vous n'avez pas accès à ce magasin.");
}
} else {
// No id provided: fallback to user's default magasin
$default = $this->utilisateur->getDefaultMagasin();
if ($default) {
$this->session->set('magasin', $default->getId());
$this->session->set('alertstock', 1);
}
}
return new RedirectResponse($redirectTo);
}
}