src/Controller/Back/UserController.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Back;
  3. use App\Entity\User;
  4. use App\Form\UserType;
  5. use App\Repository\UserRepository;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  11. /**
  12.  * @Route ("/admin")
  13.  */
  14. class UserController extends AbstractController
  15. {
  16.     /**
  17.      * @var EntityManagerInterface;
  18.      */
  19.     private $em;
  20.     public function __construct(EntityManagerInterface $em)
  21.     {
  22.         $this->em $em;
  23.     }
  24.     /**
  25.      * @Route("/add-admin", name="back_user_add")
  26.      */
  27.     public function new(Request $requestUserPasswordEncoderInterface $encoder)
  28.     {
  29.         $user = new User();
  30.         $form $this->createForm(UserType::class, $user)->handleRequest($request);
  31.         if($form->isSubmitted() && $form->isValid()) {
  32.             $user->setRoles(["ROLE_ADMIN"]);
  33.             $passwordEncoded $encoder->encodePassword($user$user->getPassword());
  34.             $user->setPassword($passwordEncoded);
  35.             $this->em->persist($user);
  36.             $this->em->flush();
  37.             $this->addFlash('success''Administrateur créé !');
  38.             return $this->redirectToRoute('back_user_list');
  39.         }
  40.         return $this->render('back/user/add.html.twig', [
  41.             'form' =>$form->createView()
  42.         ]);
  43.     }
  44.     /**
  45.      * @Route("/list-admin", name="back_user_list")
  46.      */
  47.     public function getUsers(UserRepository $userRepository)
  48.     {
  49.         return $this->render('back/user/list.html.twig', [
  50.             'users' => $userRepository->getUsers($this->getUser()),
  51.         ]);
  52.     }
  53.     /**
  54.      * @Route("/delete-admin/{id}", name="back_user_delete")
  55.      */
  56.     public function deleteUser(UserRepository $userRepositoryint $id)
  57.     {
  58.         $user $userRepository->find($id);
  59.         $this->em->remove($user);
  60.         $this->em->flush();
  61.         $this->addFlash('success''Administrateur supprimé !');
  62.         return $this->redirectToRoute('back_user_list');
  63.     }
  64. }