src/Controller/HomeController.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\PDossier;
  4. use App\Entity\Pemploye;
  5. use App\Entity\UsModule;
  6. use App\Entity\UsSousModule;
  7. use App\Entity\UserOperationDossier;
  8. use App\Entity\Users;
  9. use Doctrine\Persistence\ManagerRegistry;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Component\HttpFoundation\JsonResponse;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. class HomeController extends AbstractController
  16. {
  17.     private $em;
  18.     public function __construct(ManagerRegistry $doctrine)
  19.     {
  20.         $this->em $doctrine->getManager();
  21.         
  22.     }
  23.     
  24.     #[Route('/'name'app_site'options:['expose' => true])]
  25.     public function site(Request $request ManagerRegistry $doctrine): Response
  26.     {
  27.         // dd('amine');
  28.         // dd($this->getUser());
  29.         if($this->getUser() instanceof Pemploye) {
  30.             if($this->getUser()->isIsFirstLogin()) {
  31.                 return $this->redirectToRoute('app_register_changepassword');
  32.             }
  33.             return $this->redirectToRoute('app_espace_personnel_demande_conge');
  34.         }
  35.         if(in_array('ROLE_ADMIN'$this->getUser()->getRoles())){
  36.             $dossiers $doctrine->getManager()->getRepository(PDossier::class)->findAll();
  37.         }
  38.         else if(in_array('ROLE_RESPONSABLE'$this->getUser()->getRoles())){
  39.             return $this->redirectToRoute('app_redirect'); 
  40.         } else {
  41.             $dossiers $doctrine->getManager()->getRepository(UserOperationDossier::class)->finddossier($this->getUser()->getId());        
  42.         }
  43.         // if($request->getSession()->get('dossier')) {
  44.         //     // dd($request->getSession()->get('dossier'));
  45.         //     $request->getSession()->remove('dossier');
  46.         //     return $this->redirectToRoute('app_logout');
  47.         // }
  48.         // dd('amine');
  49.        
  50.         return $this->render('security/site.html.twig', [
  51.             'dossiers' => $dossiers
  52.         ]);
  53.       
  54.     }
  55.     #[Route('/404'name'app_404'options:['expose' => true])]
  56.     public function app_404(Request $request ManagerRegistry $doctrine): Response
  57.     {
  58.        dd('vous ne pouvez pas change le site!');
  59.     }
  60.     #[Route('/redirect'name'app_redirect'options:['expose' => true])]
  61.     public function redirectsite(Request $request): Response
  62.     {
  63.         if(in_array('ROLE_RESPONSABLE'$this->getUser()->getRoles())){
  64.             $user $this->em->getRepository(Users::class)->find($this->getUser());
  65.             $dossier $user->getDossierResponsable();
  66.         } else {
  67.             $dossier $this->em->getRepository(PDossier::class)->find($request->get('site_id'));
  68.         }
  69.         $request->getSession()->set('dossier'$dossier);
  70.         if(in_array('ROLE_ADMIN'$this->getUser()->getRoles())){
  71.             $sousModules $this->em->getRepository(UsSousModule::class)->findAll();
  72.         } else {
  73.             $sousModules $this->em->getRepository(UsSousModule::class)->findByUserOperations($this->getUser(), $dossier);
  74.         }
  75.         $modules $this->em->getRepository(UsModule::class)->getModuleBySousModule($sousModules);
  76.         $data = [];
  77.         // dd($sousModules);
  78.         foreach($modules as $module) {
  79.             $sousModuleArray = [];
  80.             foreach ($sousModules as $sousModule) {
  81.                 if($sousModule->getModule()->getId() == $module->getId()) {
  82.                     // dd($sousModule);
  83.                     array_push($sousModuleArray,$sousModule);
  84.                 }
  85.             }
  86.             array_push($data, [
  87.                 'module' => $module,
  88.                 'sousModule' => $sousModuleArray
  89.             ]);
  90.             
  91.         }
  92.         // dd($data);
  93.         $request->getSession()->set('modules'$data);
  94.         if(count($sousModules) < 1) {
  95.             die("Vous n'avez aucun prévilege pour continue cette operation. veuillez contacter votre chef!");
  96.         } 
  97.         // return $this->redirectToRoute('app_salarie_site');
  98.         // return $this->redirectToRoute($sousModules[0]->getLink());
  99.         // $sousModules = $request->getSession()->get('sousmodules');
  100.         
  101.         $redirectUrl =  $sousModules[0]->getlink();
  102.         if($this->isGranted('ROLE_RESPONSABLE')){
  103.             return $this->redirectToRoute($redirectUrl); 
  104.         }
  105.         
  106.         return new JsonResponse(['redirect_url' => $redirectUrl]);
  107.     }
  108. }