src/Controller/ConfigController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Form\RegistrationFormType;
  5. use App\Entity\Status;
  6. use App\Form\StatusType;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  13. class ConfigController extends AbstractController
  14. {
  15.     /**
  16.      * @Route("/config", name="config")
  17.      */
  18.     public function index(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): Response
  19.     {
  20.         if(!$this->getUser()):
  21.             return $this->redirect('/login');
  22.         else:
  23.             if(!in_array('ROLE_ADMIN'$this->getUser()->getRoles())):
  24.                 return $this->redirectToRoute('home');
  25.             endif;
  26.         endif;
  27.         $em $this->getDoctrine()->getManager();
  28.         $users $em->getRepository(User::class)->findBy([], ['id' => 'ASC']);
  29.         
  30.         $Users = new User();
  31.         $formusers $this->createForm(RegistrationFormType::class, $Users);
  32.         $formusers->handleRequest($request);
  33.         if ($formusers->isSubmitted() && $formusers->isValid()) {
  34.             $Users->setRoles(['ROLE_USER']);
  35.             // encode the plain password
  36.             $Users->setPassword(
  37.             $userPasswordHasher->hashPassword(
  38.                     $Users,
  39.                     $formusers->get('plainPassword')->getData()
  40.                 )
  41.             );
  42.             $entityManager->persist($Users);
  43.             $entityManager->flush();
  44.             return $this->redirectToRoute('config');
  45.         }
  46.         /****/
  47.         $em $this->getDoctrine()->getManager();
  48.         $status $em->getRepository(Status::class)->findBy([], ['title' => 'ASC']);
  49.         $Status = new Status();
  50.         $formstatus $this->createForm(StatusType::class, $Status);
  51.         $formstatus->handleRequest($request);
  52.         if ($formstatus->isSubmitted() && $formstatus->isValid()) {
  53.             $entityManager $this->getDoctrine()->getManager();
  54.             $entityManager->persist($Status);
  55.             $entityManager->flush();
  56.             return $this->redirectToRoute('config');
  57.         }
  58.         /***/
  59.         return $this->render('config/index.html.twig', [
  60.             'controller_name' => 'ConfigController',
  61.             'users' => $users,
  62.             'formusers' => $formusers->createView(),
  63.             'status' => $status,
  64.             'formstatus' => $formstatus->createView()            
  65.         ]);
  66.     }
  67.     /**
  68.      * @Route("/config/user/{id}", name="deleteuser")
  69.      */
  70.     function DeleteUser(Request $requestUser $user){
  71.         $em $this->getDoctrine()->getManager();
  72.         $em->remove($user);
  73.         $em->flush();
  74.         return $this->redirectToRoute('config', ['success' => 'ok']);
  75.     }
  76.     /**
  77.      * @Route("/config/status/{id}", name="deletestatus")
  78.      */
  79.     function DeleteStatus(Request $requestStatus $status){
  80.         $em $this->getDoctrine()->getManager();
  81.         $em->remove($status);
  82.         $em->flush();
  83.         return $this->redirectToRoute('config', ['success' => 'ok']);
  84.     }
  85. }