src/Controller/DefaultController.php line 156

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use App\Form\ContactType;
  5. use App\Model\User;
  6. use App\Entity\Auditoria;
  7. use App\Entity\Estatusactividades;
  8. use App\Entity\Clientes;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  12. use App\Form\ChangePasswordType;
  13. use Symfony\Component\HttpFoundation\RedirectResponse;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  16. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  17. use Symfony\Component\Mailer\MailerInterface;
  18. use Symfony\Component\Mime\Email;
  19. use App\Model\EnvioEmail;
  20. use Doctrine\ORM\EntityManagerInterface;
  21. class DefaultController extends AbstractController
  22. {
  23.  /**
  24.      * Lists all Usuarios entities.
  25.      *
  26.      * @Route("/inicio", name="inicio")
  27.      * @Template()
  28.      */
  29.     public function indexAction(Request $request)
  30.     {
  31.         $session $request->getSession();
  32.         $name=$session->get('nombreusuario');
  33.         return $this->render('Default/index.html.twig', array('usuario' => $name));
  34.     }
  35.      public function alertasAction(Request $request,EntityManagerInterface $entityManager)
  36.     {
  37.         $session $request->getSession();
  38.         $estatus $entityManager->getRepository(Estatusactividades::class)
  39.                 ->find(1);
  40.         $session=$request->getSession();
  41.         $clienteid=$session->get('clienteid');
  42.         $cliente $entityManager->getRepository(Clientes::class)->find($clienteid);
  43.         $query $entityManager->createQuery(
  44.               "select AP
  45.               FROM App\Entity\Actividadesprogramas AP
  46.               inner join App\Entity\Programasmantenimiento PM WITH AP.programasmantenimiento = PM.id
  47.               where PM.clientes=?1
  48.               and AP.estatusactividades=?2
  49.               and PM.estatus=1
  50.               and AP.fechafin <= CURRENT_DATE()
  51.               order by AP.fechainicio asc");
  52.              $query->setParameter(1$cliente);
  53.              $query->setParameter(2$estatus);
  54.          
  55.         $actividadesprogramas=$query->execute();
  56.         $cantactividadesvencidas=count($actividadesprogramas);
  57.         
  58.          $querybase="select AR 
  59.               FROM App\Entity\Archivos AR
  60.               inner join App\Entity\Dependencias DP WITH AR.dependencias = DP.id
  61.               where AR.clientes=?1
  62.               and AR.fecha <= CURRENT_DATE()
  63.               order by DP.id ASC";
  64.         $query $entityManager->createQuery($querybase);
  65.         $query->setParameter(1$cliente);
  66.         $documentos=$query->execute();
  67.         $cantdocumentosvencidos=count($documentos);
  68.         return $this->render('Default/alertasinicio.html.twig', array('cantactividadesvencidas' => $cantactividadesvencidas,'cantdocumentosvencidos' =>$cantdocumentosvencidos));
  69.     }
  70.     private function createCreateForm()
  71.     {
  72.         $form $this->createForm(ContactType::class, null, array(
  73. //            'action' => $this->generateUrl('inventario_create'),
  74.             'method' => 'POST',
  75.         ));
  76. //        $form->add('submit', SubmitType::class, array('label' => 'Create'));
  77.         return $form;
  78.     }
  79.  /**
  80.      * Lists all Usuarios entities.
  81.      *
  82.      * @Route("/login", name="login")
  83.      * @Template()
  84.      */
  85.      public function loginAction(Request $request)
  86.     {
  87. //         $form = $this->get('form.factory')->create(new ContactType());
  88.          $form =  $this->createCreateForm();
  89. //        $request = $this->get('request');
  90.        
  91.         if ($request->getMethod() == 'POST') {
  92.             $form->handleRequest($request);
  93.             if ($form->isValid()) {
  94.                 $data $form->getData();
  95.                 $username $data['usuario'];
  96.                 $clave $data['clave'];
  97.                 $clave=md5($clave);
  98.                 $em $this->getDoctrine()->getManager();
  99.                 if (User::autenticar($username$clave,$em)) {
  100.                     $infoUser=User::getinfoUser($username,$em);
  101.                  
  102.                     $securityContext $this->container->get('security.token_storage');
  103.     
  104.                     $rol=User::getRolByUser($infoUser[0]->getTipousuarios()->getId(),$em);
  105.               
  106.                     $token = new UsernamePasswordToken($username$clave"secured_area", array($rol->getRol()));
  107.                     $securityContext->setToken($token);
  108.                     $session $request->getSession();
  109.                     $session->set('_security_secured_area'serialize($token));
  110.                     $session->set('userid'$infoUser[0]->getId());
  111.                     $session->set('clienteid'$infoUser[0]->getClientes()->getId());
  112.                     $session->set('cliente'$infoUser[0]->getClientes()->getNombresrazonsocial());
  113.                     $session->set('username'$username);
  114. //                    $session->set('atiendevip', $infoUser[0]->getAtiendevip());
  115.                     $session->set('nombreusuario'$infoUser[0]->getNombres());
  116.                     $auditoria  = new Auditoria();
  117.                     $user $this->container->get('security.token_storage')->getToken()->getUser();
  118.                     $auditoria->setUsuarios($infoUser[0]); 
  119.                     $auditoria->setEvento("login_valido");
  120.                     $fecha=date('Y-m-d H:i:s');
  121.                     $auditoria->setFechaevento(new \DateTime($fecha));
  122.                      $em2 $this->getDoctrine()->getManager();
  123.                      $em2->persist($auditoria);
  124.                      $em2->flush();
  125.                 } 
  126.                 else 
  127.                 {
  128.                     $this->get('session')->getFlashBag()->set('warning''Usuario o clave incorrecta.');
  129.                     return new RedirectResponse($this->generateUrl('bufete_acceso_login'));
  130.                 }
  131.                 $esAfiliado $this->isGranted('ROLE_AFILIADO');
  132.                 if ($esAfiliado)
  133.                     return new RedirectResponse($this->generateUrl('cotasegurados_new'));
  134.                 else
  135.                 return new RedirectResponse($this->generateUrl('home'));
  136.             } 
  137.             else 
  138.             {
  139.                 $logger $this->get('logger');
  140.                 $logger->err('credenciales invalidas');
  141.                 echo "form invalido";
  142.             }
  143.         }
  144.         return $this->render('Default/login.html.twig', array(
  145.                     'form' => $form->createView(),
  146.                 ));
  147.     }
  148.          public function changePasswordAction(Request $request,MailerInterface $mailer)
  149.     {
  150.         $form $this->get('form.factory')->create(ChangePasswordType::class);
  151. //        $request = $this->get('request');
  152.         $session $request-> getSession();
  153.         if ($request->getMethod() == 'POST') {
  154.             $form->handleRequest($request);
  155.             if ($form->isValid()) {
  156.                 $data $form->getData();
  157.                 $claveactual $data['claveactual'];
  158.                 $clavenueva $data['clavenueva'];
  159.                 $repitaclavenueva $data['repitaclavenueva'];
  160.                 $em $this->getDoctrine()->getManager();
  161.                 $usuario=User::buscaruserbyuserid($session->get('userid'),$em);
  162.                 if ($usuario
  163.                 {
  164.                         if(trim($clavenueva)==trim($repitaclavenueva))
  165.                         {
  166.                             if($clave=md5(trim($claveactual))==$usuario->getClave())
  167.                             {
  168.                                 $cambio=User::Cambiarclave($usuario,trim($clavenueva),$em);
  169.                                 if ($usuario->getEmail()!="")
  170.                                 {
  171.                                     $asunto="SPS: Cambio de contraseña de acceso.";
  172.                                     $mensaje="Su contraseña fue actualizada de forma corracta, si usted no realizó este cambio por favor comuniquese con nuestros operadores.";
  173.                                     EnvioEmail::EnviarEmail($usuario->getEmail(),$asunto,$mensaje,$mailer);
  174.                                 }
  175.                                 $this->get('session')->getFlashBag()->add('success''La clave fue cambiada correctamente');
  176.                             }
  177.                             else
  178.                             {
  179.                                $this->get('session')->getFlashBag()->add('warning''La clave actual que ingreso no coincide con la registrada en el sistema');
  180.                             }
  181.                         }
  182.                         else
  183.                         {
  184.                            $this->get('session')->getFlashBag()->add('warning''La clave nueva debe coincidir con el campo repita clave nueva'); 
  185.                         }
  186.                         
  187.                 } 
  188.                 else 
  189.                 {
  190.                     $this->get('session')->getFlashBag()->add('error''No se encontro la data del usuario autenticado intente autenticarse de nuevo');
  191.                 }
  192.             } 
  193.         }
  194.         return $this->render('Default/changepassword.html.twig', array(
  195.                     'form' => $form->createView(),
  196.                 ));
  197.     }
  198. //    public function logoutAction(Request $request)
  199. //    {
  200. //        $session=$request->getSession();
  201. //        $session->
  202. //    }
  203. }