src/Controller/SecurityController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use App\Entity\Users;
  9. use App\Entity\UsersMisionReference;
  10. use App\Entity\UserBadgeReference;
  11. use App\Entity\Clientes;
  12. class SecurityController extends AbstractController
  13. {
  14.     public function loginAction(AuthenticationUtils $authenticationUtils, Request $request): Response
  15.     {   
  16.         // return $this->redirectToRoute('end_page');
  17.         $this->expireTokens();
  18.         $session = $request->getSession();
  19.         $session->start();
  20.         // get the login error if there is one
  21.         $error = $authenticationUtils->getLastAuthenticationError();
  22.         if($session->get('playerNickname')  && $session->get('gameLanguage') && !$error){
  23.           return $this->redirectToRoute('competition_users_list', array("categoryname"=>$session->get('categoryname')));   
  24.         } else {
  25.             $session->invalidate();
  26.         }
  27.         // last username entered by the user
  28.         $lastUsername = $authenticationUtils->getLastUsername();
  29.         return $this->render('Security/login.html.twig', ['last_username' => $lastUsername, 'error' => $error]);
  30.     }
  31.     public function registrationAction($errorMsg = "", $lastUsername = ""): Response
  32.     {   
  33.         return $this->render('Security/registration.html.twig', ["error_msg"=>$errorMsg, "last_username"=>$lastUsername]);
  34.     }
  35.     public function registerUser(Request $request): Response
  36.     {   
  37.         
  38.         $password = $request->request->get('password');
  39.         $userName = $request->request->get('userName');
  40.         $em = $this->getDoctrine()->getManager();
  41.         $ps = $em->getRepository("App\Entity\PlatformSettings")->findOneBy(array('parameterSettings'=>'platform_password', 'valueSettings'=> base64_encode($password)));
  42.         if ($ps) {
  43.             $user = new Users();
  44.             $user->setRole("ROLE_USER"); 
  45.             $user->setCliente(29);  
  46.             $password= "JohnDeere";
  47.             
  48.             $encoder = $this->container->get('security.password_encoder');
  49.             $encoded = $encoder->encodePassword($user, $password);
  50.             $user->setPassword($encoded);
  51.             $user->setChangedPassword(0);
  52.             $user->setImage("default.png");
  53.             $user->setUpdatedAt(new \DateTime('now'));
  54.             
  55.             $em = $this->getDoctrine()->getManager();
  56.             $em->persist($user);
  57.             $em->flush();
  58.             $comp = $em->getRepository('App\Entity\Competition')->findOneBy(array('name'=>'JohnDeere'));
  59.             $comp->addUser($user);
  60.             $em->flush();
  61.             $this->addBadgesToUser($user);
  62.             $successMessage = 'Usuario creado correctamente';
  63.             $this->addFlash('mensaje', $successMessage);
  64.             return $this->redirectToRoute('user_client_list', array('id'=>$usuario->getCliente()->getId()));
  65.         }
  66.         return $this->redirectToRoute('registration', array('errorMsg'=>"ContraseƱa incorrecta", 'lastUsername'=>$userName));
  67.     }
  68.    public function logoutAction(Request $request)
  69.     {
  70.         $session = $request->getSession();
  71.         $session->invalidate();    
  72.     }
  73.     public function expireTokens(){
  74.         $em = $this->getDoctrine()->getManager();
  75.         $date = (new \DateTime())->modify('-24 hours');
  76.         $usersTokens = $em->getRepository('App\Entity\TokenUsers')->createQueryBuilder('ut')
  77.                         ->where('ut.createdAt < :date ')
  78.                         ->setParameter('date', $date)
  79.                         ->getQuery()->getResult();
  80.         if($usersTokens){        
  81.             foreach ($usersTokens as $ut) {
  82.                 $em->remove($ut);
  83.             }
  84.             $em->flush();
  85.         }
  86.     }
  87.     public function checkPlayerNickname($playerNickname){
  88.         $em = $this->getDoctrine()->getManager();
  89.         $usuario= $em->getRepository("App\Entity\Attempt")->findBy(array("playerNickname"=>$playerNickname));
  90.         if($usuario) {
  91.             return new Response(json_encode(array('message'=>'ko')),
  92.                     200, 
  93.                     array('Content-Type'=>'application/json'));
  94.         } else {
  95.             return new Response(json_encode(array('message'=>'ok')),
  96.                     200, 
  97.                     array('Content-Type'=>'application/json'));
  98.         }
  99.     }
  100. }