src/Controller/UserController.php line 60

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Form\UserType;
  5. use App\Repository\UserRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. /**
  12.  * @Route("/user")
  13.  */
  14. class UserController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("/", name="app_user_index", methods={"GET"})
  18.      */
  19.     public function index(UserRepository $userRepository): Response
  20.     {
  21.         return $this->render('user/index.html.twig', [
  22.             'users' => $userRepository->findAll(),
  23.         ]);
  24.     }
  25.     /**
  26.      * @Route("/new", name="app_user_new", methods={"GET", "POST"})
  27.      */
  28.     public function new(Request $requestUserRepository $userRepository,UserPasswordHasherInterface $userPasswordHasher): Response
  29.     {
  30.         $user = new User();
  31.         $form $this->createForm(UserType::class, $user);
  32.         $form->handleRequest($request);
  33.         if ($form->isSubmitted() && $form->isValid()) {
  34.             $user->setPassword(
  35.                 $userPasswordHasher->hashPassword(
  36.                     $user,
  37.                     $form->get('plainPassword')->getData()
  38.                 )
  39.             );
  40.             $user->setIsVerified(true);
  41.             $userRepository->add($usertrue);
  42.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  43.         }
  44.         return $this->renderForm('user/new.html.twig', [
  45.             'user' => $user,
  46.             'form' => $form,
  47.         ]);
  48.     }
  49.     /**
  50.      * @Route("/{id}", name="app_user_show", methods={"GET"})
  51.      */
  52.     public function show(User $user): Response
  53.     {
  54.         return $this->render('user/show.html.twig', [
  55.             'user' => $user,
  56.         ]);
  57.     }
  58.     /**
  59.      * @Route("/{id}/edit", name="app_user_edit", methods={"GET", "POST"})
  60.      */
  61.     public function edit(Request $requestUser $userUserRepository $userRepository): Response
  62.     {
  63.         $form $this->createForm(UserType::class, $user);
  64.         $form->handleRequest($request);
  65.         if ($form->isSubmitted() && $form->isValid()) {
  66.             $userRepository->add($usertrue);
  67.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  68.         }
  69.         return $this->renderForm('user/edit.html.twig', [
  70.             'user' => $user,
  71.             'form' => $form,
  72.         ]);
  73.     }
  74.     /**
  75.      * @Route("/{id}", name="app_user_delete", methods={"POST"})
  76.      */
  77.     public function delete(Request $requestUser $userUserRepository $userRepository): Response
  78.     {
  79.         if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {
  80.             $userRepository->remove($usertrue);
  81.         }
  82.         return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  83.     }
  84. }