<?php
namespace App\Services;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Twig\Environment;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
class SecurityCore {
private $token;
private $entityManager;
private $request;
private $template;
private $router;
private $redirect;
public function __construct(EntityManagerInterface $entityManager, TokenStorageInterface $tokenStorage, RequestStack $requestStack, Environment $templating, RouterInterface $router) {
$this->token = $tokenStorage;
$this->em = $entityManager;
$this->request = $requestStack;
$this->template = $templating;
$this->router = $router;
}
public function validationAccess() {
// var_dump($this->request->getCurrentRequest()->get('_route_params'));exit;
$accion = $this->em->getRepository(\App\Entity\SecAccion::class)->findOneBy(['ruta' => $this->request->getCurrentRequest()->get('_route')]);
if ($accion) {
$sesion = $this->request->getSession();
$sesion->start();
if (in_array($accion->getClass(), ['ajax', 'ajax2', 'ajax3']) && !$this->request->getCurrentRequest()->isXmlHttpRequest()) {
$funcionalidad = $accion->getFuncion();
$listar = null;
$redirect = 'app_homepage';
if ($funcionalidad->getModulo()) {
if ($funcionalidad->getModulo()->getId() == 4) {
$response = new RedirectResponse($this->router->generate($redirect));
header('Location: ' . $response->getTargetUrl());
exit;
}
}
foreach ($funcionalidad->getSecAccion() as $acc) {
if ($acc->getTipo() == 1) {
$redirect = $acc->getRuta();
break;
}
}
$urlDef = $this->router->generate($accion->getRuta(), $this->request->getCurrentRequest()->get('_route_params'));
$sesion->set('loadModalRequest', $urlDef);
$response = new RedirectResponse($this->router->generate($redirect));
header('Location: ' . $response->getTargetUrl());
exit;
return $response;
} else if (in_array($accion->getClass(), ['ajax', 'ajax2', 'ajax3']) && $this->request->getCurrentRequest()->isXmlHttpRequest()) {
$sesion->set('loadModalRequest', null);
}
// var_dump($this->request->getCurrentRequest()->get('_route'));
// var_dump($this->request->getCurrentRequest()->get('_route_params'));
// var_dump($this->request->getCurrentRequest()->get('_controller'));
/*
* return new RedirectResponse($this->router->generate($actbodusu[0]['nombreRuta'], array(
'idSubModulo' => $actbodusu[0]['idSubModulo'],
'idFun' => $actbodusu[0]['idFun'],
'idEntidad' => $ordenTrabajo->getId(),
'idOTActBodUsu' => $actbodusu[0]['id'],)), 301);
}
*/
// echo "ya estoy validando;";
//
// exit;
}
}
}