src/Familia2/MainBundle/Controller/DefaultController.php line 19

Open in your IDE?
  1. <?php
  2. namespace Familia2\MainBundle\Controller;
  3. use Familia2\Domain\Model\User\Token;
  4. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  5. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  6. use Symfony\Component\HttpFoundation\Cookie;
  7. use Symfony\Component\HttpFoundation\RedirectResponse;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  11. class DefaultController extends Controller
  12. {
  13.     /**
  14.      * @Route("/", name="homepage")
  15.      */
  16.     public function indexAction()
  17.     {
  18.         return new RedirectResponse($this->getParameter('main_domain'));
  19.     }
  20.     /**
  21.      * @Route("/set_redirect/{url}", name="set_redirect", requirements={"url"=".+"})
  22.      **/
  23.     public function setRedirectAction(Request $request$url)
  24.     {
  25.         $session $request->getSession();
  26.         $session->set('RedirectUrl'$url);
  27.         $response = array('success' => true);
  28.         return new Response(json_encode($response));
  29.     }
  30.     /**
  31.      * @Route("/login_redirect", name="login_redirect")
  32.      */
  33.     public function loginRedirectAction(Request $request)
  34.     {
  35.         $session $request->getSession();
  36.         if ($session->has('RedirectUrl')) {
  37.             $url $session->get('RedirectUrl');
  38.             $session->remove('RedirectUrl');
  39.         } else {
  40.             $url $this->generateUrl('homepage');
  41.         }
  42.         return $this->redirect($url);
  43.     }
  44.     /**
  45.      * @Route("/contacto", name="contact_page")
  46.      */
  47.     public function contactoAction()
  48.     {
  49.         return $this->render('Familia2MainBundle:Default:contacto.html.twig');
  50.     }
  51.     /**
  52.      * @Route("/aviso-legal", name="aviso_legal_page")
  53.      */
  54.     public function avisoLegalAction()
  55.     {
  56.         return $this->render('Familia2MainBundle:Default:aviso-legal.html.twig');
  57.     }
  58.     /**
  59.      * @Route("/preguntas-frecuentes", name="preguntas_frecuentes_page")
  60.      */
  61.     public function preguntasfrecuentesAction()
  62.     {
  63.         return $this->render('Familia2MainBundle:Default:preguntas-frecuentes.html.twig');
  64.     }
  65.     /**
  66.      * @Route("/como-funciona/soy-cuidador", name="como_funciona_cuidador_page")
  67.      */
  68.     public function comoFuncionaCuidadorAction()
  69.     {
  70.         return $this->render('Familia2MainBundle:Default:como-funciona--cuidador.html.twig');
  71.     }
  72.     /**
  73.      * @Route("/ventajas/soy-cuidador", name="ventajas_cuidador_page")
  74.      */
  75.     public function ventajasCuidadorAction()
  76.     {
  77.         return $this->render('Familia2MainBundle:Default:ventajas--cuidador.html.twig');
  78.     }
  79.     /**
  80.      * @Route("/ventajas/busco-cuidador", name="ventajas_cliente_page")
  81.      */
  82.     public function ventajasClienteAction()
  83.     {
  84.         return $this->render('Familia2MainBundle:Default:ventajas--cliente.html.twig');
  85.     }
  86.     /**
  87.      * @Route("/admin/login_as/{id}", name="admin_login_as")
  88.      */
  89.     public function loginAsAction($id)
  90.     {
  91.         $response = new RedirectResponse('/');
  92.         $user $this->getUser();
  93.         if ($user->isAdmin()) {
  94.             $em $this->get('user_manager');
  95.             $user $em->find($id);
  96.             $providerKey $this->container->getParameter('fos_user.firewall_name');
  97.             $userToken = new UsernamePasswordToken($usernull$providerKey$user->getRoles());
  98.             $this->get('security.token_storage')->setToken($userToken);
  99.             $token = new Token($this->get('uuid_generator')->generate(), $user);
  100.             $user->addToken($token);
  101.             $em->save($user);
  102.             $userGroups $this->get('service.user.get_groups')->execute($user);
  103.             $tokenCookie = new Cookie(
  104.                 'user_token',
  105.                 $token->getToken(),
  106.                 time() + (86400 30),
  107.                 '/',
  108.                 $this->getParameter('cookie.domain'),
  109.                 false,
  110.                 false
  111.             );
  112.             $groupCookie = new Cookie(
  113.                 'userGroup',
  114.                 implode(","$userGroups),
  115.                 time() + (86400 30),
  116.                 '/',
  117.                 $this->getParameter('cookie.domain'),
  118.                 false,
  119.                 false
  120.             );
  121.             $response->headers->setCookie($tokenCookie);
  122.             $response->headers->setCookie($groupCookie);
  123.         }
  124.         return $response;
  125.     }
  126. }