diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index 394659a..e09766e 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -9,7 +9,6 @@ use App\Entity\Ville; use App\Repository\ParticipantRepository; use App\Repository\SiteRepository; use App\Repository\VilleRepository; -use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RedirectResponse; @@ -26,8 +25,10 @@ use Doctrine\DBAL\Exception\UniqueConstraintViolationException; class AdminController extends AbstractController { private ParticipantRepository $participantRepository; - public function __construct(ParticipantRepository $participantRepository){ + private SiteRepository $siteRepository; + public function __construct(ParticipantRepository $participantRepository, SiteRepository $siteRepository){ $this->participantRepository = $participantRepository; + $this->siteRepository = $siteRepository; } #[Route('/admin', name: 'app_admin')] public function index(TokenStorageInterface $tokenStorage): Response @@ -47,9 +48,11 @@ class AdminController extends AbstractController $token = $tokenStorage->getToken(); $userConnect = $token?->getUser(); $participants = $this->participantRepository->findAll(); + $sites = $this->siteRepository->findAll(); return $this->render('admin/user.html.twig', [ 'profile' => $userConnect, 'participants' => $participants, + 'sites' => $sites, 'controller_name' => 'AdminController', ]); } @@ -388,17 +391,19 @@ class AdminController extends AbstractController return $this->redirectToRoute('app_adminSite'); } - #[Route('/admin/accept', name: 'app_acceptUser')] - public function acceptUser(Request $request, EntityManagerInterface $entityManager, ParticipantRepository $participantRepository): Response + #[Route('/admin/accept', name: 'app_acceptUser', methods: ['POST'])] + public function acceptUser(Request $request, EntityManagerInterface $entityManager, ParticipantRepository $participantRepository, SiteRepository $siteRepository): Response { try { - $user = $participantRepository->findOneBy(["idParticipant" => $request->get('id')]); + $user = $participantRepository->findOneBy(["idParticipant" => $request->request->get('id')]); + $site = $siteRepository->findOneBy(['idSite' => $request->request->get('site')]); - if(!$user) { - $this->addFlash('error', 'Le utilisateur n\'existe pas.'); + if(!$user || !$site) { + $this->addFlash('error', 'L\'utilisateur ou le site n\'existe pas.'); return $this->redirectToRoute('app_adminUser'); } + $user->setSite($site); $user->setPending(false); $entityManager->persist($user); $entityManager->flush(); diff --git a/templates/admin/user.html.twig b/templates/admin/user.html.twig index 51e1233..9184a4d 100644 --- a/templates/admin/user.html.twig +++ b/templates/admin/user.html.twig @@ -104,6 +104,7 @@ Pseudo Téléphone Email + Site Actions @@ -111,17 +112,32 @@ {% for participant in participants %} {% if participant.pending %} - {{ participant.nom }} - {{ participant.prenom }} - {{ participant.pseudo }} - {{ participant.telephone }} - {{ participant.email }} - - - Accepter - - Refuser - +
+ {{ participant.nom }} + {{ participant.prenom }} + {{ participant.pseudo }} + {{ participant.telephone }} + {{ participant.email }} + + + + + + + Refuser + +
{% endif %} {% else %}