src/Controller/UserController.php line 105

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Form\ConnexionFormType;
  5. use App\Form\UserFormType;
  6. use App\Notification\ContactNotification;
  7. use App\Repository\MediaRepository;
  8. use App\Repository\UserRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Nexmo\Client;
  11. use Nexmo\Client\Credentials\Basic;
  12. use PhpParser\Node\Expr\BinaryOp\Equal;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  18. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  19. use telesign\sdk\messaging\MessagingClient;
  20. use Twig\Cache\FilesystemCache;
  21. class UserController extends AbstractController
  22. {
  23.     /**
  24.      * @var EntityManagerInterface
  25.      */
  26.     private $em;
  27.     /**
  28.      * UserController constructor.
  29.      * @param EntityManagerInterface $em
  30.      */
  31.     public function __construct(EntityManagerInterface $em)
  32.     {
  33.         $this->em $em;
  34.     }
  35.     /**
  36.      * Permet de signaler l'echec d'une connexion a cause d'un faux mot de passe ou email
  37.      *
  38.      * @Route("/login", name="parc.login")
  39.      * @param Request $request
  40.      * @param AuthenticationUtils $authenticationUtils
  41.      * @return Response
  42.      */
  43.     public function login(Request $request,AuthenticationUtils $authenticationUtils){
  44.         $user = new User();
  45.         $FormConnexion $this->createForm(ConnexionFormType::class,$user);
  46.         $FormConnexion->handleRequest($request);
  47.         $error $authenticationUtils->getLastAuthenticationError();
  48.         $lastUsername $authenticationUtils->getLastUsername();
  49.         return $this->render('inscription/page/formConnexionPage.html.twig',[
  50.             'formConnexion'   => $FormConnexion->createView(),
  51.             'error' => $error,
  52.             'last_username' => $lastUsername
  53.         ]);
  54.     }
  55.     /**
  56.      * Permet de checker
  57.      *
  58.      * @Route("/loginCheck",name="parc.page.login")
  59.      * @return \Symfony\Component\HttpFoundation\RedirectResponse
  60.      */
  61.     public function loginCheck(){
  62.         if($this->isGranted('ROLE_SUPER_ADMIN')){
  63.             return $this->redirectToRoute('app.admin');
  64.         }
  65.         else if($this->isGranted('ROLE_CHOEUR')){
  66.            return $this->redirectToRoute('choeur.admin');
  67.         }
  68.         return $this->redirectToRoute('chovie.logout');
  69.     }
  70.     /**
  71.      * Appel les formulaires de connexion et d'inscription a l'index du site
  72.      *
  73.      * @Route("/",name="inscription.inscription")
  74.      * @param UserRepository $userRepository
  75.      * @param Request $request
  76.      * @return Response
  77.      * @internal param AuthenticationUtils $authenticationUtils
  78.      */
  79.     public function inscription(UserRepository $userRepository,Request $request):Response{
  80.         $user = new User();
  81.         $UserInfo $userRepository->find2User(2);
  82.         $UserInfo2 $userRepository->UserMembre(12);
  83.         $FormInscription $this->createForm(UserFormType::class,$user);
  84.         $FormInscription->handleRequest($request);
  85.         $req_user_page $userRepository->find2User(1);
  86.         if($FormInscription->isSubmitted() && $FormInscription->isValid()){
  87.             if($user->getTypeCompteUser() === 1){
  88.                 return $this->render('inscription/new_suite_info.html.twig',[
  89.                     'formInscription' => $FormInscription->createView(),
  90.                     'MyIdPDW' => $user->getPasswordUser()
  91.                 ]);
  92.             }
  93.             return $this->render('inscription/signature/new_suite_info.html.twig',[
  94.                 'formInscription' => $FormInscription->createView(),
  95.                 'MyIdPDW' => $user->getPasswordUser()
  96.             ]);
  97.         }
  98.         $count $userRepository->count(['id' => $userRepository->UserMembreSignateurCount()]);
  99.         return $this->render('inscription/new.html.twig',[
  100.             'formInscription' => $FormInscription->createView(),
  101.             'UserInfo'        => $UserInfo,
  102.             'UserInfo2'        => $UserInfo2,
  103.             'User' => $req_user_page,
  104.             'totalPreference' => $count
  105.         ]);
  106.     }
  107.     /**
  108.      * Permet l'envoie d'un code de vérification du robot
  109.      *
  110.      * @Route("/sendCode",name="inscription.sendCode")
  111.      * @param ContactNotification $email
  112.      * @param Request $request
  113.      * @param UserPasswordEncoderInterface $encoder
  114.      * @return Response
  115.      * @throws \Twig\Error\LoaderError
  116.      * @throws \Twig\Error\RuntimeError
  117.      * @throws \Twig\Error\SyntaxError
  118.      */
  119.     public function sendCode(Request $request,UserPasswordEncoderInterface $encoder):Response{
  120.         $user = new User();
  121.         $FormInscription $this->createForm(UserFormType::class,$user);
  122.         $FormInscription->handleRequest($request);
  123.         $pwd $user->getPasswordUser();
  124.         if($FormInscription->isSubmitted() && $FormInscription->isValid()){
  125.             if($user->getTypeCompteUser() === 3){
  126.                 $hash $encoder->encodePassword($user,$user->getPasswordUser());
  127.                 $user->setPasswordUser($hash);
  128.             }
  129.             $code mt_rand(0,100000000);
  130.             $user->setCodeValidation($code);
  131.             return $this->render('inscription/signature/sms.html.twig',[
  132.                 'formInscription' => $FormInscription->createView(),
  133.                 'MyIdPDW' => $pwd,
  134.                 'code' => $code
  135.             ]);
  136.         }
  137.         if($user->getTypeCompteUser() === 1){
  138.             return $this->json(['message' => 'Erreur d\'envoie'],200);
  139.         }
  140.         return $this->redirectToRoute('inscription.sms');
  141.     }
  142.     /**
  143.      * @Route("/sms", name="inscription.sms")
  144.      *
  145.      * @param Request $request
  146.      * @param UserPasswordEncoderInterface $encoder
  147.      * @param UserRepository $userRepository
  148.      * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response
  149.      */
  150.     public function smsvalidation(Request $requestUserPasswordEncoderInterface $encoderUserRepository $userRepository){
  151.         $user = new User();
  152.         $FormInscription $this->createForm(UserFormType::class,$user);
  153.         $FormInscription->handleRequest($request);
  154.         if($FormInscription->isSubmitted()){
  155.             if($FormInscription->isValid()) {
  156.                 $hash $encoder->encodePassword($user$user->getPasswordUser());
  157.                 $user->setPasswordUser($hash);
  158.                 $user->setRoles('ROLE_CHOEUR');
  159.                 $this->em->persist($user);
  160.                 $this->em->flush();
  161.                 return $this->redirectToRoute('parc.login', [
  162.                     'm' => $user->getEmailUser(),
  163.                     '?' => $hash,
  164.                 ]);
  165.             }
  166.             $code mt_rand(1000,10000000);
  167.             return $this->render('inscription/signature/sms.html.twig',[
  168.                 'formInscription' => $FormInscription->createView(),
  169.                 'MyIdPDW' => $user->getPassword(),
  170.                 'code' => $code
  171.             ]);
  172.         }
  173.         if($user->getPasswordUser() === null){
  174.             // Si la session à été detruite
  175.             return $this->render('inscription/inscription.html.twig',[
  176.                 'formInscription'   => $FormInscription->createView(),
  177.                 'error' => 'Votre session à été détruite',
  178.                 'last_username' => ''
  179.             ]);
  180.         }
  181.         $code mt_rand(10000,10000000);
  182.         return $this->render('inscription/signature/sms.html.twig',[
  183.             'formInscription' => $FormInscription->createView(),
  184.             'req' => 0,
  185.             'MyIdPDW' => $user->getPassword(),
  186.             'code' => $code
  187.         ]);
  188.     }
  189.     /**
  190.      * @Route("/sauverUser/{mail}/{pwd}",name="inscription.sauver")
  191.      * @param Request $request
  192.      * @return Response
  193.      */
  194.     public function sauver(Request $request){
  195.         $user = new User();
  196.         $FormProfil $this->createForm(ConnexionFormType::class,$user);
  197.         //$this->filesystemCache->clear();
  198.         return $this->render('inscription/formConnexion.html.twig',[
  199.             'formConnexion' => $FormProfil->createView(),
  200.             'pwd' => $request->get('pwd'),
  201.             'email' => $request->get('mail')
  202.         ]);
  203.     }
  204.     /**
  205.      * @Route("/page/{nm}/page/php?q=1{ii}y{clan}0e{ik}f1u/{id}-{create_at}", name="page.chovie_pub")
  206.      * @param Request $request
  207.      * @param MediaRepository $repository
  208.      * @param UserRepository $userRepository
  209.      * @return Response
  210.      */
  211.     public function page_(Request $request,MediaRepository $repository,UserRepository $userRepository):Response
  212.     {
  213.         $page_id $request->get('id');
  214.         $page_ii $request->get('ii');
  215.         $page_ik $request->get('ik');
  216.         if(!is_numeric($page_id) or  $page_id != $page_ii or $page_id != $page_ik  ){
  217.             return $this->redirectToRoute('inscription.inscription');
  218.         }
  219.         $req_user $repository->getMediaPage($page_id,1,99999999999);
  220.         $req_user_page $userRepository->find($page_id);
  221.         $findAll $userRepository->find2User(4);
  222.         return $this->render('inscription/page/page.html.twig',[
  223.             'q' => 101,
  224.             'Media' => $req_user,
  225.             'User' => $req_user_page,
  226.             'UserAll' => $findAll
  227.         ]);
  228.     }
  229.     /**
  230.      * @Route("/page-{q}-{id}/{ik}-{ii}-{apprt}-{idscroller}", name="page.media.scroller")
  231.      *
  232.      * @param Request $request
  233.      * @param MediaRepository $repository
  234.      * @return Response
  235.      */
  236.     public function scrollerMedia(Request $requestMediaRepository $repository){
  237.         $page_id $request->get('id');
  238.         $page_ii $request->get('ii');
  239.         $page_ik $request->get('ik');
  240.         $scroler $request->get('idscroller');
  241.         $apprt $request->get('apprt');
  242.         $q $request->get('q');
  243.         $req_user $repository->getMediaPage($page_id,$apprt,$scroler);
  244.        return $this->render('parc/_lecteur_media.html.twig',[
  245.             'Media' => $req_user,
  246.             'q' => $q
  247.         ]);
  248.     }
  249.     /**
  250.      * @Route("/pageAuto", name="page.auto" )
  251.      *
  252.      * @param Request $request
  253.      * @param UserRepository $repository
  254.      * @return Response
  255.      */
  256.     public function searchUser(Request $requestUserRepository $repository) {
  257.         $key trim($request->get('q'));
  258.         $tab $repository->autocomplete($key,0);
  259.         return $this->render('inscription/page/seekUser.html.twig',[
  260.             'UserSearch' => $tab
  261.         ]);
  262.     }
  263.     /**
  264.      * Appel les formulaires de connexion et d'inscription a l'index du site
  265.      *
  266.      * @Route("/inscription",name="user.inscription")
  267.      * @param UserRepository $userRepository
  268.      * @param Request $request
  269.      * @param AuthenticationUtils $authenticationUtils
  270.      * @return Response
  271.      */
  272.     public function inscriptionForm(UserRepository $userRepository,Request $request,AuthenticationUtils $authenticationUtils):Response{
  273.         $user = new User();
  274.         $FormInscription $this->createForm(UserFormType::class,$user);
  275.         $FormInscription->handleRequest($request);
  276.         if($FormInscription->isSubmitted() && $FormInscription->isValid()){
  277.             /**$this->filesystemCache->setMultiple([
  278.                 'user.nom' => $user->getNomUser(),
  279.                 'user.email' => $user->getEmailUser(),
  280.                 'user.telphone' => $user->getNumTelUser(),
  281.                 'user.motDePasse' => $user->getPasswordUser(),
  282.                 'user.typeCompte' => $user->getTypeCompteUser(),
  283.             ]);*/
  284.             if($user->getTypeCompteUser() === 1){
  285.                 return $this->render('inscription/new_suite_info.html.twig',[
  286.                     'formInscription' => $FormInscription->createView(),
  287.                     'MyIdPDW' => $user->getPasswordUser()
  288.                 ]);
  289.             }
  290.             return $this->render('inscription/signature/new_suite_info.html.twig',[
  291.                 'formInscription' => $FormInscription->createView(),
  292.                 'MyIdPDW' => $user->getPasswordUser()
  293.             ]);
  294.         }
  295.         return $this->render('inscription/inscription.html.twig',[
  296.             'formInscription' => $FormInscription->createView(),
  297.         ]);
  298.     }
  299.     /**
  300.      * Share whatsapp
  301.      *
  302.      * @Route("/page/xe5oi{id}yr{id_med}h7",name="page.Media.notifierWhasapp")
  303.      *
  304.      * @param MediaRepository $mediaRepository
  305.      * @param Request $request
  306.      * @param UserRepository $userRepository
  307.      * @return Response
  308.      */
  309.     public function MediaSelectionnerWhatsapp(MediaRepository $mediaRepository,Request $request,UserRepository $userRepository){
  310.         $id $request->get('id');
  311.         $id_med $request->get('id_med');
  312.         $req_user $mediaRepository->getMediaNotification($id,$id_med);
  313.         $req_user_page $userRepository->find($id);
  314.         $findAll $userRepository->find2User(4);
  315.         return $this->render('inscription/page/page.html.twig',[
  316.             'q' => 101,
  317.             'Media' => $req_user,
  318.             'User' => $req_user_page,
  319.             'UserAll' => $findAll
  320.         ]);
  321.     }
  322. }