<?php
namespace App\Controller;
use App\Entity\Utilisateur;
use App\Form\LoginType;
use App\Repository\UtilisateurRepository;
use Doctrine\ORM\EntityManagerInterface;
use Exception;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
class LoginController extends AbstractController
{
/**
* Renvoie l'internaute à la page login de l'application
*
* @Route("/", name="login")
* @return Response
*/
public function index(): Response
{
$formLogin = $this->createForm(LoginType::class);
return $this->render('login/index.html.twig',[
'form_login' => $formLogin->createView()
]);
}
/**
* Retourner l'erreur liée à l'échec de la connexion
* @Route("/login", name="user.login")
* @param AuthenticationUtils $authenticationUtils
* @return Response
*/
public function login(AuthenticationUtils $authenticationUtils): Response
{
$formLogin = $this->createForm(LoginType::class);
$error = $authenticationUtils->getLastAuthenticationError();
return $this->render('login/index.html.twig',[
'form_login' => $formLogin->createView(),
'error' => 'Email ou mot de passe erroné'
]);
}
/**
* @Route("/logoutMethode", name="logoutMethode")
* @param UtilisateurRepository $repository
* @param UtilisateurRepository $utilisateurRepository
* @return RedirectResponse
*/
public function logoutMethode(UtilisateurRepository $repository,UtilisateurRepository $utilisateurRepository){
$repository->UpdateStatutCompte('0',$this->getUser()->getId());
return $this->redirectToRoute('logout');
}
/**
* @Route("/logout", name="logout")
* @param UtilisateurRepository $utilisateurRepository
*/
public function log(UtilisateurRepository $utilisateurRepository)
{
// $utilisateurRepository->UpdateConnectedDate(new \DateTime(date('Y-m-d')),$this->getUser()->getId());
}
/**
* @Route("/connectedUpdate/34234gere{id}fsdf5334", name="connectedUpdate")
* @param Utilisateur $utilisateur
* @param Request $request
* @param EntityManagerInterface $entityManager
* @return JsonResponse
* @throws Exception
*/
public function connectedUpdate(Utilisateur $utilisateur, Request $request,EntityManagerInterface $entityManager): Response
{
$date = new \DateTime($request->get('dateConnected'));
$utilisateur->setDateConnected($date);
$entityManager->flush();
return $this->json($date->format('d-m-Y'));
}
/**
* @Route("/logoutPage", name="logoutPage")
*/
public function logout()
{
$formLogin = $this->createForm(LoginType::class);
return $this->render('login/index.html.twig',[
'form_login' => $formLogin->createView(),
'blocker' => ''
]);
}
/**
* @Route("/profile/home", name="user.profil.home")
* @param UtilisateurRepository $repository
* @return Response
* @throws Exception
*/
public function logSuccess(UtilisateurRepository $repository): Response
{
if($this->getUser()->getEtat() === false){
return $this->redirectToRoute('logout',[
'blocker' => ''
]);
}
$repository->UpdateStatutCompte('1',$this->getUser()->getId());
if($this->getUser()->getDateConnected() < new \DateTime(date('Y-m-d'))){
$repository->UpdateDateConnected(new \DateTime(date('Y-m-d')) ,$this->getUser()->getId());
}
if($this->getUser()->getId() === 59){
return $this->redirectToRoute('rapportJournalierAllTransfert');
}
if($this->getUser()->getId() === 52 || $this->getUser()->getId() === 54 || $this->getUser()->getId() === 54){
return $this->redirectToRoute('app_reception_index');
}
return $this->redirectToRoute('super.admin.index');
/* if($this->getUser()->getRole() === 'ROLE_SUPER_ADMIN'){
}
if($this->getUser()->getRole() === 'ROLE_SUPER_ADMIN'){
return $this->redirectToRoute('super.admin.index');
}
elseif($this->getUser()->getRole() === 'ROLE_ADMIN'){
//return $this->redirectToRoute('direction_index');
return $this->redirectToRoute('paiement_index',[
'id' => $this->getUser()->getId(),
]);
}
elseif($this->getUser()->getRole() === 'ROLE_FACTURE'){
return $this->redirectToRoute('facture.index');
}
elseif($this->getUser()->getRole() === 'ROLE_CAISSE'){
return $this->redirectToRoute('paiement_index',[
'id' => $this->getUser()->getId(),
]);
}
elseif($this->getUser()->getRole() === 'ROLE_SUIVI'){
return $this->redirectToRoute('paiement_index',[
'id' => $this->getUser()->getId(),
]);
}
elseif($this->getUser()->getRole() === 'ROLE_DIRECTION'){
return $this->redirectToRoute('direction_index');
}
elseif($this->getUser()->getRole() === 'ROLE_BOIS'){
return $this->redirectToRoute('paiement_index',[
'id' => $this->getUser()->getId(),
]);
// return $this->redirectToRoute('facture.index');
//return $this->redirectToRoute('bois_index');
// return $this->redirectToRoute('paiement_index');
}
return $this->redirectToRoute('logout',[
'blocker' => ''
]);*/
}
}