src/Controller/UserController.php line 81

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\Routing\Annotation\Route;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  11. /**
  12.  * @Route("/user")
  13.   * @Security("is_granted('ROLE_ADMIN')")
  14.  */
  15. class UserController extends AbstractController
  16. {
  17.     /**
  18.      * @Route("/", name="app_user_index", methods={"GET"})
  19.      */
  20.     public function index(UserRepository $userRepository): Response
  21.     {
  22.         return $this->render('user/index.html.twig', [
  23.             'users' => $userRepository->findBy(array('Archive'=>0)),
  24.         ]);
  25.     }
  26.     /**
  27.      * @Route("/new", name="app_user_new", methods={"GET", "POST"})
  28.      */
  29.     public function new(Request $requestUserRepository $userRepository): Response
  30.     {
  31.         $user = new User();
  32.         $form $this->createForm(UserType::class, $user);
  33.         $form->handleRequest($request);
  34.         if ($form->isSubmitted() ) {
  35.             $userExist $userRepository->findOneBy(array('email'=>$user->getEmail()));
  36.           
  37.             if(!empty($userExist))
  38.             {
  39.                 
  40.                 return $this->redirectToRoute('app_user_index', ['error'=>'userExist'], Response::HTTP_SEE_OTHER);
  41.             }
  42.             else
  43.             {
  44.                 dd('ok');
  45.             $user->setRoles(array('ROLE_CLIENT'));
  46.             $pass =  password_hash($_POST['password'], PASSWORD_DEFAULT);
  47.             $user->setPassword($pass);
  48.             $user->setArchive(0);
  49.             $user->setToken('ok');
  50.             $userRepository->add($usertrue);
  51.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  52.             }
  53.         }
  54.         return $this->renderForm('user/new.html.twig', [
  55.             'user' => $user,
  56.             'form' => $form,
  57.             'type'=>'add'
  58.         ]);
  59.     }
  60.     /**
  61.      * @Route("/{id}", name="app_user_show", methods={"GET"})
  62.      */
  63.     public function show(User $user): Response
  64.     {
  65.         return $this->render('user/show.html.twig', [
  66.             'user' => $user,
  67.         ]);
  68.     }
  69.     /**
  70.      * @Route("/{id}/edit", name="app_user_edit", methods={"GET", "POST"})
  71.      */
  72.     public function edit(Request $requestUser $userUserRepository $userRepository): Response
  73.     {
  74.         $oldEmail $user->getEmail();
  75.         $form $this->createForm(UserType::class, $user);
  76.         $form->handleRequest($request);
  77.         if ($form->isSubmitted() && $form->isValid()) {
  78.             
  79.             if($oldEmail != $user->getEmail())
  80.             { 
  81.                 $userExist $userRepository->findOneBy(array('email'=>$user->getEmail()));
  82.                 if(!empty($userExist))
  83.                 {
  84.                     return $this->redirectToRoute('app_user_index', ['error'=>'userExist'], Response::HTTP_SEE_OTHER);
  85.                 }
  86.             }
  87.             
  88.             
  89.             if(!empty($_POST['password']))
  90.             {
  91.                 $pass =  password_hash($_POST['password'], PASSWORD_DEFAULT);
  92.                 $user->setPassword($pass);
  93.             }
  94.             $userRepository->add($usertrue);
  95.             return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  96.         }
  97.         return $this->renderForm('user/edit.html.twig', [
  98.             'user' => $user,
  99.             'form' => $form,
  100.             'type'=>'edit'
  101.         ]);
  102.     }
  103.     /**
  104.      * @Route("/{id}", name="app_user_delete", methods={"POST"})
  105.      */
  106.     public function delete(Request $requestUser $userUserRepository $userRepository): Response
  107.     {
  108.         if ($this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) {
  109.             $user->setArchive(1);
  110.                         $userRepository->add($usertrue);
  111.         }
  112.         return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
  113.     }
  114. }