src/Controller/UserController.php line 37

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\Security\Core\Encoder\UserPasswordEncoderInterface;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use App\Repository\DemandeRepository;
  12. use App\Repository\OrderRepository;
  13. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  14. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  15. /**
  16.  * @Route("/user")
  17.  */
  18. class UserController extends AbstractController
  19. {
  20.     /**
  21.      * @Route("/index", name="app_user_index", methods={"GET"})
  22.      * 
  23.      */
  24.     public function index(UserRepository $userRepository): Response
  25.     {
  26.         return $this->render('user/index.html.twig', [
  27.             'users' => $userRepository->findAll(),
  28.         ]);
  29.     }
  30.     /**
  31.      * @Route("/new", name="app_user_new", methods={"GET", "POST"})
  32.      */
  33.     public function new(Request $requestUserRepository $userRepositoryUserPasswordEncoderInterface $encoder): Response
  34.     {
  35.         if ($this->isGranted('ROLE_USER')) {
  36.             return $this->redirectToRoute('app_home_index');
  37.         }
  38.         $user = new User();
  39.         $form $this->createForm(UserType::class, $user);
  40.         $form->handleRequest($request);
  41.         if ($form->isSubmitted() && $form->isValid()) {
  42.             $hash $encoder->encodePassword($user$user->getPassword());
  43.             $user->setPassword($hash);
  44.             $userRepository->add($usertrue);
  45.             // Authentification de l'utilisateur après son enregistrement
  46.             // $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
  47.             // $this->get('security.token_storage')->setToken($token);
  48.             
  49.             // // Redirection de l'utilisateur vers une page de succès ou autre page souhaitée
  50.             // return $guardHandler->authenticateUserAndHandleSuccess(
  51.             //     $user,
  52.             //     $request,
  53.             //     $authenticator,
  54.             //     'main'
  55.             // );
  56.             return $this->redirectToRoute('app_home_index', [], Response::HTTP_SEE_OTHER);
  57.         }
  58.         return $this->renderForm('user/new.html.twig', [
  59.             'user' => $user,
  60.             'form' => $form,
  61.         ]);
  62.     }
  63.     /**
  64.      * @Route("/profile", name="profile", methods={"GET"})
  65.      */
  66.     public function profile(OrderRepository $orderRepository): Response
  67.     {
  68.         $user $this->get('security.token_storage')->getToken()->getUser();
  69.         return $this->render('user/profile.html.twig', [
  70.             'orders' => $orderRepository->findBy(['user' => $user->getId()])
  71.         ]);
  72.     }
  73.     /**
  74.      * @Route("/login", name="login")
  75.      */
  76.     public function login(Request $requestAuthenticationUtils $authenticationUtils)
  77.     {
  78.         if ($this->isGranted('ROLE_USER')) {
  79.             return $this->redirectToRoute('app_home_index');
  80.         }
  81.         // get the login error if there is one
  82.         $error $authenticationUtils->getLastAuthenticationError();
  83.         // last username entered by the user
  84.         $lastUsername $authenticationUtils->getLastUsername();
  85.         $session $request->getSession();
  86.         return $this->render('user/login.html.twig', [
  87.             'last_username' => $lastUsername,
  88.             'error' => $error,
  89.         ]);
  90.     }
  91.      /**
  92.      * @Route("/logout", name="logout")
  93.      */
  94.     public function logout()
  95.     {
  96.     }
  97.     // /**
  98.     //  * @Route("/{id}", name="app_user_show", methods={"GET"})
  99.     //  */
  100.     // public function show(User $user): Response
  101.     // {
  102.     //     $livres = $user->getLivres();
  103.     //     return $this->render('user/show.html.twig', [
  104.     //         'user' => $user,
  105.     //         'livres' => $livres,
  106.     //     ]);
  107.     // }
  108.     /**
  109.      * @Route("/{id}/edit", name="app_user_edit", methods={"GET", "POST"})
  110.      */
  111.     public function edit(Request $requestUser $userUserRepository $userRepository): Response
  112.     {
  113.         $form $this->createForm(UserType::class, $user);
  114.         $form->handleRequest($request);
  115.         if ($form->isSubmitted() && $form->isValid()) {
  116.             $userRepository->add($usertrue);
  117.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  118.         }
  119.         return $this->renderForm('user/edit.html.twig', [
  120.             'user' => $user,
  121.             'form' => $form,
  122.         ]);
  123.     }
  124.     
  125.     /**
  126.      * @Route("/{id}", name="app_user_delete", methods={"POST"})
  127.      */
  128.     public function delete(Request $requestUser $userUserRepository $userRepository): Response
  129.     {
  130.         if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {
  131.             $userRepository->remove($usertrue);
  132.         }
  133.         return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  134.     }
  135. }