src/Controller/IndexController.php line 37

Open in your IDE?
  1. <?php
  2. // src/Controller/IndexController.php
  3. namespace App\Controller;
  4. use App\Entity\User;
  5. use App\Entity\Organization;
  6. use App\Entity\UserOrganization;
  7. use App\Entity\Distributor;
  8. use App\Entity\OrganizationDistributor;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  13. use Symfony\Component\Security\Core\Security;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Doctrine\ORM\EntityManagerInterface;
  16. use App\Service\HelperService;
  17. class IndexController extends AbstractController
  18. {
  19.     
  20.    private $session;
  21.    private $helperService;
  22.     
  23.    public function __construct(SessionInterface $sessionHelperService $helperService)
  24.    {
  25.       $this->session $session;
  26.       $this->helperService  $helperService;
  27.    }
  28.     /**
  29.      * @Route("/", name="homepage", methods={"GET", "POST"})
  30.      */
  31.     public function homepage(Request $request): Response
  32.     {
  33.         return $this->redirectToRoute('app_login', [], Response::HTTP_SEE_OTHER);
  34.     }
  35.     /**
  36.      * @Route("/switch_language", name="switch_language", methods={"GET", "POST"})
  37.      */
  38.     public function switchLanguage(Request $request): Response
  39.     {
  40.         
  41.         
  42.         $this->session->set('_locale'$request->get('lang'));
  43.         $referer $request->headers->get('referer');               
  44.         return $this->redirect($referer);
  45.         
  46.         
  47.     }
  48.     /**
  49.      * @Route("/switch_distributor", name="switch_distributor", methods={"GET", "POST"})
  50.      */
  51.     public function switchDistributor(Request $request): Response
  52.     {
  53.                 
  54.         $this->session->set('_distributor'$request->get('dist'));
  55.         $referer $request->headers->get('referer');               
  56.         return $this->redirect($referer);        
  57.         
  58.     }
  59.     
  60.     /**
  61.       * @Route("/switch_organization", name="switch_organization", methods={"GET", "POST"})
  62.       */
  63.      public function switchOrganization(Request $request): Response
  64.      {
  65.          $this->session->set('_organization'$request->get('org'));
  66.          $user $this->getUser();
  67.          $organization_id $request->get('org');
  68.          $defaultModule $this->helperService->getUserPerms($user,$organization_id); 
  69.          $this->helperService->getMenuModules($user,$organization_id);
  70.          
  71.          
  72.          return $this->redirectToRoute($defaultModule);   
  73.          //$referer = $request->headers->get('referer');               
  74.          //return $this->redirect($referer);        
  75.      }
  76.     public function mainNav(): Response
  77.     {
  78.         
  79.         $lastUsername $this->session->get(Security::LAST_USERNAME);        
  80.         $menu         $this->session->get($lastUsername."_menu");    
  81.         return $this->render('nav.html.twig', [
  82.             'menu' => $menu
  83.         ]);
  84.     }
  85.     public function organizationDropdown(Request $requestEntityManagerInterface $entityManager): Response
  86.     {
  87.         
  88.         $lastUsername $this->session->get(Security::LAST_USERNAME);        
  89.          $userData $request->getSession()->get($lastUsername);
  90.        $userObj $entityManager->getRepository(User::class)->findOneBy([
  91.              'id' => $userData['id']
  92.        ]);
  93.        
  94.        if($this->session->get('_organization'))
  95.        {
  96.           $selectedOrganizationObj $entityManager->getRepository(\App\Entity\Organization::class)->findOneBy([
  97.               'organizationId' => $this->session->get('_organization')
  98.           ]);         
  99.        }else{
  100.           $selectedUserOrganizationTemp $entityManager->getRepository(\App\Entity\UserOrganization::class)->findOneBy([
  101.                'user' => $userObj"is_primary" => 1
  102.            ]); 
  103.           $selectedOrganizationObj =  $selectedUserOrganizationTemp->getOrganization();
  104.           $this->session->set('_organization'$selectedOrganizationObj->getOrganizationId());
  105.        }
  106.         $organizationList $entityManager->getRepository(\App\Entity\UserOrganization::class)->findBy([
  107.               'user' => $userObj"is_active" => 1
  108.         ]);
  109.           return $this->render('dropdown.html.twig', [
  110.               'organizations' => $organizationList,
  111.             'selectedOrganization' => $selectedOrganizationObj
  112.         ]);
  113.     }
  114. }