src/Controller/EquipeController.php line 180

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Equipe;
  4. use App\Entity\Tokenpassword;
  5. use App\Form\EquipeType;
  6. use App\Repository\EquipeRepository;
  7. use App\Repository\UserRepository;
  8. use App\Repository\ResetPasswordRequestRepository;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use App\Entity\User;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  16. use App\Service\FileUploader;
  17. use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
  18. use Symfony\Component\Security\Csrf\CsrfToken;
  19. use App\Form\ChangePasswordFormType;
  20. use App\Form\ResetPasswordRequestFormType;
  21. use Datetime;
  22. use App\Service\EmailSender;
  23. use Symfony\Component\Mailer\MailerInterface;
  24. use Symfony\Component\Mime\Address;
  25. use Symfony\Contracts\Translation\TranslatorInterface;
  26. use SymfonyCasts\Bundle\ResetPassword\Controller\ResetPasswordControllerTrait;
  27. use SymfonyCasts\Bundle\ResetPassword\Exception\ResetPasswordExceptionInterface;
  28. use Symfony\Component\HttpFoundation\RedirectResponse;
  29. use SymfonyCasts\Bundle\ResetPassword\ResetPasswordHelperInterface;
  30. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  31. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  32. use SymfonyCasts\Bundle\ResetPassword\Model\ResetPasswordToken;
  33.  /**
  34.  * @Route("/equipe")
  35.  */
  36. class EquipeController extends AbstractController
  37. {
  38.     private $resetPasswordHelper;
  39.     private $entityManager;
  40.     public function __construct(ResetPasswordHelperInterface $resetPasswordHelperEntityManagerInterface $entityManager)
  41.     {
  42.         $this->resetPasswordHelper $resetPasswordHelper;
  43.         $this->entityManager $entityManager;
  44.     }
  45.     
  46.     
  47.     /**
  48.      * @Route("/", name="app_equipe", methods={"GET", "POST"})
  49.      */
  50.     public function index(EquipeRepository $equipeRepository): Response
  51.     
  52.         $equipe$equipeRepository->findAll();
  53.         $tab=[];
  54.         $equipes=[];
  55.         // id,type as owner,client as name ,date,file ,batiment
  56.         foreach ($equipe as  $value) {
  57.         
  58.             $tab['id']=$value->getId();
  59.             $tab['name']=$value->getNom();
  60.             $tab['owner']=$value->getPrenom();
  61.             $tab['industry_type']=$value->getPhone();
  62.             $tab['location']=explode("_",$value->getRole())[1];
  63.             $tab['contact_email']=$value->getEmail();
  64.             $tab['image_src']=$value->getPhoto() ? "https://kaje-cee.net/assets/uplaod-equipe/".$value->getPhoto() : "https://kaje-cee.net/assets/images/user.png";
  65.             
  66.             $tab['employee']="equipe";
  67.             $equipes[]=$tab;
  68.         }
  69.         $clientjson json_encode($equipes);
  70.         // var_dump(json_encode($clientjson ));
  71.         file_put_contents('assets/json/equipe-list.json'$clientjson);
  72.         return $this->render('equipe/index.html.twig', [
  73.             'equipes' => $equipeRepository->findAll(),
  74.         ]);
  75.     }
  76.     
  77.     /**
  78.      * @Route("/new", name="app_equipe_new", methods={"GET", "POST"})
  79.      */
  80.     public function new(Request $requestEquipeRepository $equipeRepository,EntityManagerInterface $entityManager ,UserPasswordHasherInterface $userPasswordHasher,
  81.     FileUploader $uploader,UserRepository $userRepository,MailerInterface $mailerTranslatorInterface $translator): Response
  82.     {
  83.         $equipe = new Equipe();
  84.         // $form = $this->createForm(EquipeType::class, $equipe);
  85.         // $form->handleRequest($request);
  86.         if ($request->getMethod() == "POST") {
  87.             
  88.             $form $request->request;
  89.             
  90.             $userold=$userRepository->findOneBy(["email"=>$form->get('email')]);
  91.             // var_dump($userold);die('test');
  92.             if ($userold != null) {
  93.                 return $this->render('equipe/index.html.twig', [
  94.                     'equipes' => $equipeRepository->findAll(),
  95.                     'messageuser'=>'Membre Equipe deja Ajouter'
  96.                 ]);
  97.             }
  98.             $user = new User();
  99.             $user->setEmail($form->get('email'));
  100.             $roles[]=$form->get('role');
  101.             if ($form->get('role') == "ROLE_ADMIN") {
  102.                 $roles[]="ROLE_MANAGER";
  103.             }
  104.             foreach ($form->get('permission') as  $value) {
  105.                 $roles[]="ROLE_".$value;
  106.             }
  107.             
  108.             $user->setRoles($roles);
  109.             $user->setPassword(
  110.                 $userPasswordHasher->hashPassword(
  111.                         $user,'kagekali01'
  112.                     )
  113.                 );
  114.     
  115.                 $entityManager->persist($user);
  116.                 $equipe->setUser($user);
  117.                 $permission=[];
  118.                 foreach ($form->get('permission') as  $value) {
  119.                     $permission[]=$value;
  120.                 }
  121.                 
  122.                 if ($request->files->get('photo-file')) {
  123.                     $nom=explode(".",$request->files->get('photo-file')->getClientOriginalName())[0];
  124.                     $uploader->setTargetDirectory($this->getParameter('equipe_directory'));
  125.                     $uploader->upload($request->files->get('photo-file'),$nom);
  126.                     $equipe->setPhoto($uploader->getFileName());
  127.                 }
  128.                 $equipe->setNom($form->get('nom'));
  129.                 $equipe->setPrenom($form->get('prenom'));
  130.                 $equipe->setEmail($form->get('email'));
  131.                 $equipe->setPhone($form->get('phone'));
  132.                 $equipe->setRole($form->get('role'));
  133.                 $equipe->setPermissions($permission);
  134.              
  135.             // $produit->setNom($form->get("nom"));
  136.             // $produit->setReference($form->get("reference"));
  137.             // $produit->setPrix($form->get("prix"));
  138.             // $produit->setDescription($form->get("description"));
  139.             // $produitRepository->add($produit, true);
  140.             
  141.             $equipeRepository->add($equipetrue);
  142.             $username$equipe->getPrenom()." ".$equipe->getNom();
  143.            
  144.             return $this->processSendingPasswordResetEmail(
  145.                 $form->get('email'),
  146.                 $mailer,
  147.                 $translator,$username
  148.             );
  149.             return $this->redirectToRoute('app_equipe', [], Response::HTTP_SEE_OTHER);
  150.         }
  151.         // if ($form->isSubmitted() && $form->isValid()) {
  152.         //     $equipeRepository->add($equipe, true);
  153.         //     return $this->redirectToRoute('app_equipe', [], Response::HTTP_SEE_OTHER);
  154.         // }
  155.         return $this->renderForm('equipe/new.html.twig', [
  156.             'equipe' => $equipe
  157.         ]);
  158.     }
  159.  
  160.      /**
  161.      * @Route("/{id}", name="app_equipe_show", methods={"GET"})
  162.      */
  163.     public function show(Equipe $equipe): Response
  164.     {
  165.         return $this->redirectToRoute('app_equipe_edit', ['id' =>$equipe->getId()], Response::HTTP_SEE_OTHER);
  166.         // return $this->render('equipe/show.html.twig', [
  167.         //     'equipe' => $equipe,
  168.         // ]);
  169.     }
  170.   
  171.      /**
  172.      * @Route("/{id}/edit", name="app_equipe_edit", methods={"GET", "POST"})
  173.      */
  174.     public function edit(Request $requestEquipe $equipeEquipeRepository $equipeRepository,FileUploader $uploader,CsrfTokenManagerInterface $csrfTokenManager,
  175.     UserRepository $userRepository): Response
  176.     {
  177.         // $form = $this->createForm(EquipeType::class, $equipe);
  178.         // $form->handleRequest($request);
  179.         $csrfToken $csrfTokenManager->getToken('equipe_edit');
  180.         if ($request->getMethod() == "POST") {
  181.             $token $request->request->get('_token');
  182.             $id explode("A@",explode("12OU#@R",$token)[1])[0];
  183.             if ($id!=$equipe->getId()) {
  184.                 return $this->redirectToRoute('app_equipe_edit', ['id' => $id], Response::HTTP_SEE_OTHER);
  185.             }
  186.             $form $request->request;
  187.             $user $equipe->getUser();
  188.             if ($user->getEmail()!= $form->get('email')) {
  189.                 $user->setEmail($form->get('email'));
  190.             }
  191.             if ($equipe->getRole() != 'ROLE_ADMIN' && $equipe->getRole() != 'ROLE_MANAGER' ) {
  192.                 if (!$this->isGranted('ROLE_CONTROLER') && !$this->isGranted('ROLE_CONTROLER') ) {
  193.                     $roles[]=$form->get('role');
  194.                
  195.                     if ($form->get('permission') != null) {
  196.                         foreach ($form->get('permission') as  $value) {
  197.                             $roles[]="ROLE_".$value;
  198.                         }
  199.                     }
  200.                 
  201.                 
  202.                    $user->setRoles($roles);
  203.                 }
  204.             }
  205.            
  206.             $userRepository->add($usertrue);
  207.             // $user->setEmail($form->get('email'));
  208.             // $roles[]=$form->get('role');
  209.             // $user->setRoles($roles);
  210.             // $user->setPassword(
  211.             //     $userPasswordHasher->hashPassword(
  212.             //             $user,'kagekali01'
  213.             //         )
  214.             //     );
  215.     
  216.             //     $entityManager->persist($user);
  217.                
  218.             if (!$this->isGranted('ROLE_CONTROLER') && !$this->isGranted('ROLE_CONTROLER') ) {
  219.                $permission=[];
  220.                if ($form->get('permission') != null ) {
  221.                 foreach ($form->get('permission') as  $value) {
  222.                     $permission[]=$value;
  223.                 }
  224.                }
  225.                 
  226.             }
  227.                 // var_dump($request->files->get('photo-file'));die('test');
  228.                 if ($request->files->get('photo-file')) {
  229.                     $nom=explode(".",$request->files->get('photo-file')->getClientOriginalName())[0];
  230.                     $uploader->setTargetDirectory($this->getParameter('equipe_directory'));
  231.                     $uploader->upload($request->files->get('photo-file'),$nom);
  232.                     $equipe->setPhoto($uploader->getFileName());
  233.                 }
  234.                 if ($request->files->get('signature-file')) {
  235.                     $nom=explode(".",$request->files->get('signature-file')->getClientOriginalName())[0];
  236.                     $uploader->setTargetDirectory($this->getParameter('equipe_directory'));
  237.                     $uploader->upload($request->files->get('signature-file'),$nom);
  238.                     $equipe->setSignature($uploader->getFileName());
  239.                 }
  240.                 
  241.                 $equipe->setNom($form->get('nom'));
  242.                 $equipe->setPrenom($form->get('prenom'));
  243.                 $equipe->setEmail($form->get('email'));
  244.                 $equipe->setPhone($form->get('phone'));
  245.                 $equipe->setRole($form->get('role'));
  246.                 if (!$this->isGranted('ROLE_CONTROLER') && !$this->isGranted('ROLE_CONTROLER') ) {
  247.                     $equipe->setPermissions($permission);
  248.                 }
  249.                 
  250.              
  251.             // $produit->setNom($form->get("nom"));
  252.             // $produit->setReference($form->get("reference"));
  253.             // $produit->setPrix($form->get("prix"));
  254.             // $produit->setDescription($form->get("description"));
  255.             // $produitRepository->add($produit, true);
  256.             $equipeRepository->add($equipetrue);
  257.             // return $this->redirectToRoute('app_equipe', [], Response::HTTP_SEE_OTHER);
  258.         }
  259.         // if ($form->isSubmitted() && $form->isValid()) {
  260.         //     $equipeRepository->add($equipe, true);
  261.         //     return $this->redirectToRoute('app_equipe', [], Response::HTTP_SEE_OTHER);
  262.         // }
  263.         return $this->renderForm('equipe/edit.html.twig', [
  264.             'equipe' => $equipe,
  265.             'csrf_token' => $csrfToken->getValue().'12OU#@R'.$equipe->getId()."A@T9"
  266.         ]);
  267.     }
  268.    
  269.      /**
  270.      * @Route("/{id}", name="app_equipe_delete", methods={"POST"})
  271.      */
  272.     public function delete(Request $requestEquipe $equipeEquipeRepository $equipeRepository,UserRepository $userRepository,
  273.     ResetPasswordRequestRepository $resetPasswordRequestRepository): Response
  274.     {
  275.         if ($this->isCsrfTokenValid('delete'.$equipe->getId(), $request->request->get('_token'))) {
  276.             $user=$userRepository->findOneBy(["email"=>$equipe->getEmail()]);
  277.              
  278.             //  foreach ($resetPasswordRequestRepository->findBy(["user"=>$user->getId()]) as  $value) {
  279.            
  280.                 
  281.             //     var_dump($value);die('test');
  282.             //     $resetPasswordRequestRepository->remove($value, true);
  283.         
  284.             // }
  285.             foreach ($resetPasswordRequestRepository->findBy(["user"=>$user->getId()]) as  $value) {
  286.            
  287.                 
  288.                 $resetPasswordRequestRepository->remove($valuetrue);
  289.         
  290.             }
  291.             
  292.             foreach ($equipe->getDossiercontroler1() as $key => $value) {
  293.                 $equipe->removeDossiercontroler1($value);
  294.             }
  295.             foreach ($equipe->getDossiercontroler2() as $key => $value) {
  296.                 $equipe->removeDossiercontroler2($value);
  297.             }
  298.             foreach ($equipe->getCommentairesControlles() as $key => $value) {
  299.                 $equipe->removeCommentairesControlle($value);
  300.             }
  301.             foreach ($equipe->getActiviteDossiers() as $key => $value) {
  302.                 $equipe->removeActiviteDossier($value);
  303.             }
  304.             foreach ($equipe->getActiviteDeals() as $key => $value) {
  305.                 $equipe->removeActiviteDeal($value);
  306.             }
  307.             
  308.             
  309.             
  310.             foreach ($user->getNotifications() as $key => $value) {
  311.                 $user->removeNotification($value);
  312.             }
  313.             foreach ($user->getSendernotif() as $key => $value) {
  314.                 $user->removeSendernotif($value);
  315.             }
  316.             
  317.             foreach ($user->getTokenpasswords() as $key => $value) {
  318.                 $user->removeTokenpassword($value);
  319.             }
  320.             foreach ($user->getHistoriqueDeals() as $key => $value) {
  321.                 $user->removeHistoriqueDeal($value);
  322.             }
  323.             foreach ($user->getCommentaireDeals() as $key => $value) {
  324.                 $user->removeCommentaireDeal($value);
  325.             }
  326.             foreach ($user->getCommentaireInstalleurs() as $key => $value) {
  327.                 $user->removeCommentaireInstalleur($value);
  328.             }
  329.             foreach ($user->getFiltres() as $key => $value) {
  330.                 $user->removeFiltre($value);
  331.             }
  332.             foreach ($user->getCommentaireContrats() as $key => $value) {
  333.                 $user->removeCommentaireContrat($value);
  334.             }
  335.             foreach ($user->getCommentaireFactureaafs() as $key => $value) {
  336.                 $user->removeCommentaireFactureaaf($value);
  337.             }
  338.             foreach ($user->getCommentaireAppelqualites() as $key => $value) {
  339.                 $user->removeCommentaireAppelqualite($value);
  340.             }
  341.             $equipeRepository->remove($equipetrue);
  342.             $userRepository->remove($usertrue);
  343.             
  344.         }
  345.         return $this->redirectToRoute('app_equipe', [], Response::HTTP_SEE_OTHER);
  346.     }
  347.     private function processSendingPasswordResetEmail(string $emailFormDataMailerInterface $mailerTranslatorInterface $translator,$username): RedirectResponse
  348.     
  349.         
  350.         $user $this->entityManager->getRepository(User::class)->findOneBy([
  351.             'email' => $emailFormData,
  352.         ]);
  353.         
  354.         // Do not reveal whether a user account was found or not.
  355.         if (!$user) {
  356.             return $this->redirectToRoute('app_check_email');
  357.         }
  358.         try {
  359.             $resetToken $this->resetPasswordHelper->generateResetToken($user);
  360.             $tokenpassword = new Tokenpassword();
  361.             $tokenpassword->setToken($resetToken->getToken());
  362.             $tokenpassword->setUser($user);
  363.             $tokenpassword->setDate(new Datetime());
  364.             $this->entityManager->persist($tokenpassword);
  365.             $this->entityManager->flush();
  366.         } catch (ResetPasswordExceptionInterface $e) {
  367.             // If you want to tell the user why a reset email was not sent, uncomment
  368.             // the lines below and change the redirect to 'app_forgot_password_request'.
  369.             // Caution: This may reveal if a user is registered or not.
  370.             //
  371.             // $this->addFlash('reset_password_error', sprintf(
  372.             //     '%s - %s',
  373.             //     $translator->trans(ResetPasswordExceptionInterface::MESSAGE_PROBLEM_HANDLE, [], 'ResetPasswordBundle'),
  374.             //     $translator->trans($e->getReason(), [], 'ResetPasswordBundle')
  375.             // ));
  376.             // var_dump($e->getReason()); die('test');
  377.             return $this->redirectToRoute('app_check_email');
  378.         }
  379.       
  380.         $email = (new TemplatedEmail())
  381.             ->from(new Address('contact@kaje-cee.net''KAJE CEE'))
  382.             ->to($user->getEmail())
  383.             ->subject('Nouveau compte KAJE CEE')
  384.             ->htmlTemplate('email/email-confirmation-compte.html.twig')
  385.             ->context([
  386.                 'resetToken' => $resetToken,
  387.                 'username' => $username
  388.             ])
  389.         ;
  390.         $mailer->send($email);
  391.         return $this->redirectToRoute('app_equipe', [], Response::HTTP_SEE_OTHER);
  392.         
  393.        
  394.         // Store the token object in session for retrieval in check-email route.
  395.         // $this->setTokenObjectInSession($resetToken);
  396.     }
  397. }