src/Controller/HomeController.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use App\Entity\Customer;
  7. use App\Form\LoginType;
  8. use App\Repository\GroupRepository;
  9. use App\Repository\CustomerRepository;
  10. use App\Repository\LeftMenuManagementRepository;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  13. use App\Service\CheckSession;
  14. class HomeController extends AbstractController
  15. {
  16.     public function __construct(SessionInterface $session)
  17.     {
  18.         $this->session $session;
  19.     }
  20.     /**
  21.      * @Route("/")
  22.      */
  23.     public function indexNoLocale()
  24.     {
  25.         return $this->redirectToRoute('index',['_locale' => 'fr']);
  26.     }
  27.     /**
  28.      * @Route("/{_locale<%app.supported_locales%>}/", name="index", methods={"GET","POST"})
  29.      * @return Response
  30.      */
  31.         public function index(Request $request,CustomerRepository $customerRepository,LeftMenuManagementRepository $leftMenuManagementRepositoryGroupRepository $groupRepository): Response
  32.         {
  33.             if(!empty($this->session->get('admin'))){
  34.                 return $this->redirectToRoute('application_index');
  35.             }else if(!empty($this->session->get('customer_id')) ){
  36.                 return $this->redirectToRoute('reseller_dashboard');
  37.             }
  38.             else{
  39.             $form $this->createForm(LoginType::class);
  40.             $form->handleRequest($request);
  41.                  if ($form->isSubmitted() && $form->isValid()) {
  42.                             $data=$form->getData();
  43.                     // stores an attribute in the session for later reuse
  44.                   
  45.                     $this->session->set('customer_id'$data['customer']->getId());
  46.                   
  47.                     $customer=$customerRepository->findOneBy(array('id' => $data['customer']->getId()));
  48.                     $menu=[];
  49.                     $menu[1]['menu']=array('seul'=>true,'url'=>'reseller_dashboard','icone'=>'pe-7s-rocket','libelle'=>'Dashboard');
  50.                     // $menu[2]['menu']=array('seul'=>true,'url'=>'#','icone'=>'pe-7s-rocket','libelle'=>'My Profile');
  51.                     
  52.                     // $group_array=$groupRepository->findBy(array('customer_id' => $data['customer']->getId()));
  53.                     
  54.                     // $menu_key=2;
  55.                     // foreach($group_array as $group){
  56.                     // $leftMenuManagement = $leftMenuManagementRepository->findBy(array('customer_id'=> $data['customer']->getId(), 'id_parent'=>$group->getId()));
  57.                  
  58.                 
  59.                     // if(count($leftMenuManagement)==0){
  60.                     //     $menu[$menu_key]['menu']=array('seul'=>true,'url'=>'displaying-datas','icone'=>'pe-7s-rocket','libelle'=>$group->getGroupName(),'group_id'=>$group->getId());
  61.               
  62.                     // }else if(count($leftMenuManagement) > 0){
  63.                     //     $menu[$menu_key]['menu']=array('seul'=>false,'url'=>'displaying-datas','icone'=>'pe-7s-rocket','libelle'=>$group->getGroupName(),'group_id'=>$group->getId());
  64.                         
  65.                         
  66.                     //     $i=1;
  67.                     // foreach($leftMenuManagement as $submenu){
  68.                       
  69.                     //      $menu[$menu_key]['sous_menu'][$i]['libelle']='';
  70.                     //      $menu[$menu_key]['sous_menu'][$i]['page'][$i]['url']=$group->getId().'/'.$submenu->getId();
  71.                     //      $menu[$menu_key]['sous_menu'][$i]['page'][$i]['page']=$submenu->getMenuName();
  72.                         
  73.                     //         $i++;
  74.                     // }
  75.                     // }
  76.                     
  77.                     //     $menu_key++;
  78.                     // }
  79.                  
  80.                     $this->session->set('menu',$menu);
  81.                     // $this->session->set('app_sidebar_header','Customer Company Name');
  82.                     $this->session->set('app_sidebar_header',$customer->getNickName());
  83.                     $this->session->set('customer',$customer);
  84.                     return $this->redirectToRoute('reseller_dashboard');
  85.                  }
  86.             return $this->render('entry.html.twig', [
  87.                 'form' => $form->createView(),
  88.             ]);
  89.             }
  90.         }
  91.         
  92.      /**
  93.      * @Route("/login_as_admin/", name="login_as_admin")
  94.      * @return Response
  95.      */
  96.     public function login_as_admin()
  97.     {
  98.         $this->session->set('admin','admin');
  99.         $menu=[];
  100.         $menu[1]['menu']=array('seul'=>true,'url'=>'application','icone'=>'pe-7s-rocket','libelle'=>'Setup Applications');
  101.         $menu[2]['menu']=array('seul'=>true,'url'=>'application/list','icone'=>'pe-7s-rocket','libelle'=>'Applications List');
  102.         $menu[3]['menu']=array('seul'=>true,'url'=>'application/setup-display-application','icone'=>'pe-7s-display1','libelle'=>'Setup Display applications');
  103.         $menu[4]['menu']=array('seul'=>true,'url'=>'customer/new','icone'=>'pe-7s-user','libelle'=>'Setup Customers');
  104.         $menu[5]['menu']=array('seul'=>true,'url'=>'base/customer','icone'=>'pe-7s-users','libelle'=>'Manage Customers');
  105.         $this->session->set('menu',$menu);
  106.         $this->session->set('app_sidebar_header','MENU');
  107.         return $this->redirectToRoute('application_index');
  108.     }
  109.     /**
  110.      * @Route("/dashboard/", name="dashboard")
  111.      * @return Response
  112.      */
  113.     public function dashboard(CheckSession $checkSession)
  114.     {
  115.         if(empty($this->session->get('customer_id')) && empty($this->session->get('admin'))){
  116.        
  117.         return $this->redirectToRoute('index');
  118.         }
  119.         return $this->render('dashboard.html.twig', [
  120.             'controller_name' => 'HomeController',
  121.         ]);
  122.     }
  123.      /**
  124.      * @Route("/logout", name="app_logout")
  125.      */
  126.     public function logout()
  127.     {
  128.         $this->session->clear();
  129.         $response = new Response;
  130.         $response->headers->addCacheControlDirective('no-cache'true);
  131.         $response->headers->addCacheControlDirective('max-age'0);
  132.         $response->headers->addCacheControlDirective('must-revalidate'true);
  133.         $response->headers->addCacheControlDirective('no-store'true);
  134.         return $this->redirectToRoute('index');
  135.     }
  136.      /**
  137.      * @Route("/not_access/", name="not_access")
  138.      * @return Response
  139.      */
  140.     public function notAccess()
  141.     {
  142.         return $this->render('not_access.html.twig');
  143.     }
  144. }