src/Controller/DefaultController.php line 23

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 Psr\Log\LoggerInterface;
  7. use App\Entity\Auditoria;
  8. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  9. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  11. use App\Form\ChangePasswordType;
  12. use Symfony\Component\HttpFoundation\RedirectResponse;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  15. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  16. use Symfony\Component\Mailer\MailerInterface;
  17. use Symfony\Component\Mime\Email;
  18. use App\Model\EnvioEmail;
  19. class DefaultController extends AbstractController
  20. {
  21.  /**
  22.      * Lists all Usuarios entities.
  23.      *
  24.      * @Route("/inicio", name="inicio")
  25.      * @Template()
  26.      */
  27.     public function indexAction(Request $request)
  28.     {
  29.         $session $request->getSession();
  30.         $name=$session->get('nombreusuario');
  31.         return $this->render('Default/index.html.twig', array('usuario' => $name));
  32.     }
  33.     private function createCreateForm()
  34.     {
  35.         $form $this->createForm(ContactType::class, null, array(
  36.             'action' => $this->generateUrl('inventario_create'),
  37.             'method' => 'POST',
  38.         ));
  39. //        $form->add('submit', SubmitType::class, array('label' => 'Create'));
  40.         return $form;
  41.     }
  42.  /**
  43.      * Lists all Usuarios entities.
  44.      *
  45.      * @Route("/login", name="login")
  46.      * @Template()
  47.      */
  48.      public function loginAction(Request $request,LoggerInterface $logger)
  49.     {
  50. //         $form = $this->get('form.factory')->create(new ContactType());
  51.          $form =  $this->createCreateForm();
  52. //        $request = $this->get('request');
  53.        
  54.         if ($request->getMethod() == 'POST') {
  55.             $form->handleRequest($request);
  56.             if ($form->isValid()) {
  57.                 $data $form->getData();
  58.                 $username $data['usuario'];
  59.                 $clave $data['clave'];
  60.                 $clave=md5($clave);
  61.                 $em $this->getDoctrine()->getManager();
  62.                 if (User::autenticar($username$clave,$em)) {
  63.                     $infoUser=User::getinfoUser($username,$em);
  64.                  
  65.                     $securityContext $this->container->get('security.token_storage');
  66.     
  67.                     $rol=User::getRolByUser($infoUser[0]->getTipousuarios()->getId(),$em);
  68.               
  69.                     $token = new UsernamePasswordToken($username$clave"secured_area", array($rol->getRol()));
  70.                     $securityContext->setToken($token);
  71.                     $session $request->getSession();
  72.                     $session->set('_security_secured_area'serialize($token));
  73.                     $session->set('userid'$infoUser[0]->getId());
  74.                     $session->set('username'$username);
  75.                     $session->set('atiendevip'$infoUser[0]->getAtiendevip());
  76.                     $session->set('nombreusuario'$infoUser[0]->getNombres());
  77.                     $auditoria  = new Auditoria();
  78.                     $user $this->container->get('security.token_storage')->getToken()->getUser();
  79.                     $auditoria->setUsuarios($infoUser[0]); 
  80.                     $auditoria->setEvento("login_valido");
  81.                     $fecha=date('Y-m-d H:i:s');
  82.                     $auditoria->setFechaevento(new \DateTime($fecha));
  83.                      $em2 $this->getDoctrine()->getManager();
  84.                      $em2->persist($auditoria);
  85.                      $em2->flush();
  86.                 } 
  87.                 else 
  88.                 {
  89.                     $logger->error('Usuario o clave incorrecta!!!!');
  90.                     $this->get('session')->getFlashBag()->set('warning''Usuario o clave incorrecta!!!!');
  91.                     return new RedirectResponse($this->generateUrl('bufete_acceso_login'));
  92.                 }
  93.                 $esAfiliado $this->isGranted('ROLE_AFILIADO');
  94.                 if ($esAfiliado)
  95.                     return new RedirectResponse($this->generateUrl('cotasegurados_new'));
  96.                 else
  97.                 return new RedirectResponse($this->generateUrl('home'));
  98.             } 
  99.             else 
  100.             {
  101. //                $logger = $this->get('logger');
  102.                 $logger->error('Formulario Expirado');
  103.                 echo "form invalido";
  104.             }
  105.         }
  106.         return $this->render('Default/login.html.twig', array(
  107.                     'form' => $form->createView(),
  108.                 ));
  109.     }
  110.          public function changePasswordAction(Request $request,MailerInterface $mailer)
  111.     {
  112.         $form $this->get('form.factory')->create(ChangePasswordType::class);
  113. //        $request = $this->get('request');
  114.         $session $request-> getSession();
  115.         if ($request->getMethod() == 'POST') {
  116.             $form->handleRequest($request);
  117.             if ($form->isValid()) {
  118.                 $data $form->getData();
  119.                 $claveactual $data['claveactual'];
  120.                 $clavenueva $data['clavenueva'];
  121.                 $repitaclavenueva $data['repitaclavenueva'];
  122.                 $em $this->getDoctrine()->getManager();
  123.                 $usuario=User::buscaruserbyuserid($session->get('userid'),$em);
  124.                 if ($usuario
  125.                 {
  126.                         if(trim($clavenueva)==trim($repitaclavenueva))
  127.                         {
  128.                             if($clave=md5(trim($claveactual))==$usuario->getClave())
  129.                             {
  130.                                 $cambio=User::Cambiarclave($usuario,trim($clavenueva),$em);
  131.                                 if ($usuario->getEmail()!="")
  132.                                 {
  133.                                     $asunto="CSL: Cambio de contraseña de acceso. !";
  134.                                     $mensaje="Su contraseña fue actualizada de forma corracta, si usted no realizó este cambio por favor comuniquese con nuestros operadores.";
  135.                                     EnvioEmail::EnviarEmail($usuario->getEmail(),$asunto,$mensaje,$mailer);
  136.                                 }
  137.                                 $this->get('session')->getFlashBag()->add('success''La clave fue cambiada correctamente');
  138.                             }
  139.                             else
  140.                             {
  141.                                $this->get('session')->getFlashBag()->add('warning''La clave actual que ingreso no coincide con la registrada en el sistema');
  142.                             }
  143.                         }
  144.                         else
  145.                         {
  146.                            $this->get('session')->getFlashBag()->add('warning''La clave nueva debe coincidir con el campo repita clave nueva'); 
  147.                         }
  148.                         
  149.                 } 
  150.                 else 
  151.                 {
  152.                     $this->get('session')->getFlashBag()->add('error''No se encontro la data del usuario autenticado intente autenticarse de nuevo');
  153.                 }
  154.             } 
  155.         }
  156.         return $this->render('Default/changepassword.html.twig', array(
  157.                     'form' => $form->createView(),
  158.                 ));
  159.     }
  160. //    public function logoutAction(Request $request)
  161. //    {
  162. //        $session=$request->getSession();
  163. //        $session->
  164. //    }
  165. }