src/Controller/UserController.php line 46

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Model\Performanceuser;
  5. use App\Form\UserType;
  6. use App\Repository\UserRepository;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface// @dth: to encode the pass
  12. /**
  13.  * @Route("/user")
  14.  */
  15. class UserController extends AbstractController
  16. {
  17.     private $passwordEncoder;
  18.     public function __construct(UserPasswordEncoderInterface $passwordEncoder)
  19.         {
  20.         $this->passwordEncoder $passwordEncoder;
  21.         }
  22.     /**
  23.      * @Route("/", name="app_user_index", methods={"GET"})
  24.      */
  25.     public function index(UserRepository $userRepository): Response
  26.     {
  27.         return $this->render('user/index.html.twig', [
  28.             'users' => $userRepository->findAll(),
  29.         ]);
  30.     }
  31.     /**
  32.      * @Route("/new", name="app_user_new", methods={"GET", "POST"})
  33.      */
  34.     public function new(Request $requestUserRepository $userRepository): Response
  35.     {
  36.         $user = new User();
  37.         $form $this->createForm(UserType::class, $user);
  38.         $form->handleRequest($request);
  39.         if ($form->isSubmitted() && $form->isValid()) {
  40.             $plainpwd $user->getPassword();
  41.             $encoded $this->passwordEncoder->encodePassword($user$plainpwd);
  42.  
  43.             $user->setPassword($encoded);
  44.  
  45.             //$user->setCreationDate(new \DateTime()); 
  46.             $userRepository->add($usertrue);
  47.                      
  48.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  49.         }
  50.         return $this->renderForm('user/new.html.twig', [
  51.             'user' => $user,
  52.             'form' => $form,
  53.         ]);
  54.     }
  55.     /**
  56.      * @Route("/{id}", name="app_user_show", methods={"GET"})
  57.      */
  58.     public function show(User $user): Response
  59.     {
  60.         return $this->render('user/show.html.twig', [
  61.             'user' => $user,
  62.         ]);
  63.     }
  64.     /**
  65.      * @Route("/{id}/edit", name="app_user_edit", methods={"GET", "POST"})
  66.      */
  67.     public function edit(Request $requestUser $userUserRepository $userRepository): Response
  68.     {
  69.         
  70.         
  71.         $form $this->createForm(UserType::class, $user);
  72.         $form->handleRequest($request);
  73.         $em $this->getDoctrine()->getConnection();
  74.         $pU = new Performanceuser($em);
  75.         if ($form->isSubmitted() && $form->isValid()) {
  76.             $olduserdata =  $pU->getUserFromID($user->getId());
  77.             
  78.             $oldpw $olduserdata[0]["password"];
  79.             $newpw $user->getPassword();
  80.             if($user->getPassword() != "" && $user->getPassword() != $oldpw){
  81.                 
  82.                 $plainpwd $user->getPassword();
  83.                 $encoded $this->passwordEncoder->encodePassword($user$plainpwd);
  84.                 
  85.                 $user->setPassword($encoded);
  86.                 
  87.             }
  88.             $userRepository->add($usertrue);
  89.             
  90.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  91.         }
  92.         return $this->renderForm('user/edit.html.twig', [
  93.             'user' => $user,
  94.             'form' => $form,
  95.         ]);
  96.     }
  97.     /**
  98.      * @Route("/{id}", name="app_user_delete", methods={"POST"})
  99.      */
  100.     public function delete(Request $requestUser $userUserRepository $userRepository): Response
  101.     {
  102.         if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {
  103.             $userRepository->remove($usertrue);
  104.         }
  105.         return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  106.     }
  107. }