src/Controller/Users/User/UserController.php line 31

Open in your IDE?
  1. <?php
  2. /*(c) Noel Kenfack <noel.kenfack@yahoo.fr> Février 2015
  3. * ce fichier est la proprieté de Zentsoft entreprise.
  4. */
  5. namespace App\Controller\Users\User;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use App\Entity\Users\User\User;
  9. use App\Form\Users\User\UserType;
  10. use App\Entity\Users\User\Newsletter;
  11. use App\Entity\Users\User\Imgprofil;
  12. use App\Form\Users\User\ImgprofilType;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use App\Service\Servicetext\GeneralServicetext;
  15. use App\Entity\Produit\Produit\Panier;
  16. use App\Entity\Produit\Produit\Souscategorie;
  17. use App\Entity\Produit\Service\Curentwebsite;
  18. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  19. use App\Service\Email\Singleemail;
  20. class UserController extends AbstractController
  21. {
  22. private $params;
  23. private $_servicemail;
  24. public function __construct(ParameterBagInterface $paramsSingleemail $servicemail)
  25. {
  26.     $this->params $params;
  27.     $this->_servicemail $servicemail;
  28. }
  29. public function inscriptionuser(GeneralServicetext $serviceRequest $request)
  30. {
  31.     $em $this->getDoctrine()->getManager();
  32.     // Si le visiteur est déjà identifié, on le redirige vers l'accueil
  33.     if($this->isGranted('IS_AUTHENTICATED_REMEMBERED')){
  34.         return $this->redirect($this->generateUrl('users_user_acces_plateforme'));
  35.     }
  36.     
  37.     $user = new User($service);
  38.     $form $this->createForm(UserType::class, $user);
  39.     if($request->getMethod() == 'POST' and $this->getUser() == null){
  40.         $form->handleRequest($request);
  41.         
  42.         if($form->isValid()){
  43.             //sécurisation du mot de passe utilisateur
  44.             $passuser $user->getPassword();
  45.             $salt substr(crypt($passuser,''), 016);
  46.             $user->setSalt($salt);
  47.             
  48.             $newpassword $service->encrypt($passuser,$salt);
  49.             $user->setPassword($newpassword);
  50.             $em->persist($user);
  51.             $em->flush();
  52.             // Stock les infos du cookie
  53.             $cookie_info = array(
  54.                 'name'  => 'PIDSESSREM',
  55.                 'value' => $service->encrypt($user->getUsername(),$this->params->get('saltcookies')),
  56.                 'time'  => time() + (3600 24 360)
  57.             );
  58.             // Cree le cookie
  59.             setCookie($cookie_info['name'], $cookie_info['value'], $cookie_info['time'],'/');
  60.             setCookie('PIDSESSDUR',$cookie_info['time'], $cookie_info['time'],'/');
  61.             
  62.             $oldemail $em->getRepository(Newsletter::class)
  63.                            ->findBy(array('email'=>$user->getUsername()));
  64.             if($oldemail == null)
  65.             {
  66.                 $newsletter = new Newsletter();
  67.                 $newsletter->SetNom($user->getNom());
  68.                 $newsletter->SetEmail($user->getUsername());
  69.                 $em->persist($newsletter);
  70.                 $em->flush();
  71.             }
  72.             return $this->redirect($this->generateUrl('users_user_user_accueil', array('id'=>$user->getId())));
  73.         }
  74.         $this->get('session')->getFlashBag()->add('information','Une erreur a été rencontrée !!!');
  75.     }
  76.     return $this->render('Theme/Users/User/User/inscriptionuser.html.twig',
  77.     array('form'=>$form->createview()));
  78. }
  79. public function accueiluser(User $userGeneralServicetext $service)
  80. {
  81.     if($this->getUser() == $user)
  82.     {
  83.         $user->setDatebeg(time());
  84.         $em $this->getDoctrine()->getManager();
  85.         $em->flush();
  86.         
  87.         $em $this->getDoctrine()->getManager();
  88.         $panier $em->getRepository(Panier::class)
  89.                      ->findOneBy(array('user'=>$user,'payer'=>0));
  90.         $panier_payer $em->getRepository(Panier::class)
  91.                            ->findBy(array('user'=>$user,'payer'=>1));
  92.         $profil = new Imgprofil($service);
  93.         $form $this->createForm(ImgprofilType::class, $profil);
  94.         
  95.         $topcat $em->getRepository(Souscategorie::class)
  96.                      ->topsouscategorie(8);
  97.                  
  98.         return $this->render('Theme/Users/User/User/accueiluser.html.twig',
  99.         array('user'=>$user,'form'=>$form->createView(),'panier'=>$panier,'panier_payer'=>$panier_payer,'topcat'=>$topcat));
  100.     }else{
  101.     return $this->redirect($this->generateUrl('users_user_acces_plateforme'));
  102.     }
  103. }
  104. public function alertnoel()
  105. {
  106.     $em $this->getDoctrine()->getManager();
  107.     $oldprofil $em->getRepository(Curentwebsite::class)
  108.                     ->FindAll();
  109.     foreach($oldprofil as $prof)
  110.     {
  111.         $em->remove($prof);
  112.         $em->flush();
  113.     }
  114.     return $this->redirect($this->generateUrl('users_user_acces_plateforme'));
  115. }
  116. public function modifierprofil(User $userGeneralServicetext $service)
  117. {
  118.     $em $this->getDoctrine()->getManager();
  119.     $request $this->getRequest();
  120.     $profil = new Imgprofil($service);
  121.         $form $this->createForm(ImgprofilType::class, $profil);
  122.         if ($request->getMethod() == 'POST')
  123.         {
  124.             $form->handleRequest($request);
  125.             if ($form->isValid()){
  126.                 
  127.                 $oldprofil $em->getRepository(Imgprofil::class)
  128.                                 ->FindOneBy(array('user'=>$user));
  129.                 if ($oldprofil === null)
  130.                 {
  131.                     $profil->setUser($user);
  132.                     $profil->setId($user->getId());
  133.                     $profil->setServicetext($service);
  134.                     $em->persist($profil);
  135.                     $em->flush();
  136.                 }else{
  137.                     $em->remove($oldprofil);
  138.                     $em->flush();
  139.                     $profil->setUser($user);
  140.                     $profil->setId($user->getId());
  141.                     $profil->setServicetext($service);
  142.                     $em->persist($profil);
  143.                     $em->flush();
  144.                 }
  145.             }
  146.         }
  147.         return $this->redirect($this->generateUrl('users_user_user_accueil',array('id'=>$user->getId())));
  148. }
  149. public function ajouteradmin(Request $request)
  150. {
  151.     $em $this->getDoctrine()->getManager();
  152.     if ($request->getMethod() == 'POST' and isset($_POST['_username']) and isset($_POST['_password'])){
  153.         $username $this->params->get('username');
  154.         $password $this->params->get('password');
  155.         if($_POST['_username'] == $username and $_POST['_password'] == $password and $this->getUser() != null)
  156.         {
  157.             $this->getUser()->addRole('ROLE_ADMIN');
  158.             $em->flush();
  159.             $this->get('session')->getFlashBag()->add('information','Administrateur enregistré avec succès');
  160.         }else{
  161.             $this->get('session')->getFlashBag()->add('information','Le mot de passe ou le nom d\'utilisateur est incorect.');
  162.         }
  163.         return $this->render('Theme/Users/User/User/ajouteradmin.html.twig');
  164.     }
  165.     $liste_user $em->getRepository(User::class)
  166.                      ->findAll();
  167.     $exist false;
  168.     foreach($liste_user as $user)
  169.     {
  170.         if (in_array('ROLE_ADMIN'$user->getRoles())){
  171.             $exist true;
  172.             break;
  173.         }
  174.     }
  175.     if($exist == true)
  176.     {
  177.         return $this->redirect($this->generateUrl('users_user_acces_plateforme'));
  178.     }else{
  179.         return $this->render('Theme/Users/User/User/ajouteradmin.html.twig');
  180.     }
  181. }
  182. public function nouveauadmin(Request $request)
  183. {
  184.     $em $this->getDoctrine()->getManager();
  185.     $formsupp $this->createFormBuilder()->getForm(); 
  186.     if ($request->getMethod() == 'POST' and isset($_POST['username']) and isset($_POST['roleuser']))
  187.     {
  188.         $userrole $em->getRepository(User::class)
  189.                        ->findOneBy(array('username'=>$_POST['username']));
  190.         if($userrole != null and !in_array($_POST['roleuser'], ($userrole->getRoles())))
  191.         {
  192.             $userrole->addRole($_POST['roleuser']);
  193.             
  194.             $em->flush();
  195.             $this->get('session')->getFlashBag()->add('information','Rôle '.$_POST['roleuser'].' ajouté avec succès à '.$userrole->name(20));
  196.         }
  197.     }
  198.     
  199.     $liste_user $em->getRepository(User::class)
  200.                      ->findManager();
  201.     return $this->render('Theme/Users/Adminuser/User/nouveauadmin.html.twig',
  202.     array('liste_user'=>$liste_user,'formsupp'=>$formsupp->createView()));
  203. }
  204. public function eleverole(User $userRequest $request$idrole)
  205. {
  206.     $formsupp $this->createFormBuilder()->getForm();
  207.     $em $this->getDoctrine()->getManager();
  208.     if ($request->getMethod() == 'POST'){
  209.         $formsupp->handleRequest($request);
  210.         if ($formsupp->isValid()){
  211.             if($idrole == 1)
  212.             {
  213.                 $user->removeRole('ROLE_GESTION');
  214.             }
  215.             if($idrole == 2)
  216.             {
  217.                 $user->removeRole('ROLE_MANAGER_ED');
  218.             }
  219.             $em->flush();
  220.             $this->get('session')->getFlashBag()->add('information','Rôle supprimé avec succès !!!');
  221.         }
  222.     }else{
  223.         if($idrole == 1)
  224.         {
  225.             $role "ROLE_GESTION à ";
  226.         }
  227.         if($idrole == 2)
  228.         {
  229.             $role "ROLE_MANAGER_ED à ";
  230.         }
  231.         $this->get('session')->getFlashBag()->add('supprime_role',$user->getId());
  232.         $this->get('session')->getFlashBag()->add('supprime_role',$idrole);
  233.         $this->get('session')->getFlashBag()->add('supprime_role',$role.' '.$user->name(30));
  234.     }
  235.     return $this->redirect($this->generateUrl('users_adminuser_ajout_nouveau_admin'));
  236. }
  237. public function listefacture(User $userGeneralServicetext $service)
  238. {
  239.     $em $this->getDoctrine()->getManager();
  240.     $user $this->getSecureUser($user);
  241.     $liste_panier $em->getRepository(Panier::class)
  242.                        ->findBy(array('user'=>$user), array('date'=>'desc'));
  243.     return $this->render('Theme/Users/User/listefacture.html.twig',
  244.     array('user'=>$user,'liste_panier'=>$liste_panier));
  245. }
  246. public function getSecureUser(User $user)
  247. {
  248.     if($this->getUser() != $user and !$this->isGranted('ROLE_GESTION'))
  249.     {
  250.         $user $this->getUser();
  251.     }
  252.     return $user;
  253. }
  254. }