a lot of ui and flash message. Useless af

This commit is contained in:
Olivier PARPAILLON
2024-11-22 10:14:18 +01:00
parent 2a594a8d44
commit 0d4b461af7
7 changed files with 172 additions and 122 deletions

View File

@@ -9,6 +9,7 @@ use App\Entity\Ville;
use App\Repository\ParticipantRepository;
use App\Repository\SiteRepository;
use App\Repository\VilleRepository;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\RedirectResponse;
@@ -245,13 +246,22 @@ class AdminController extends AbstractController
}
}
#[Route('/admin/user/export', name: 'participant_export')]
public function export(ParticipantRepository $participantRepository): Response
public function export(ParticipantRepository $participantRepository, Request $request): Response
{
$participants = $participantRepository->findAll();
$csv = "Nom,Prénom,Pseudo,Téléphone,Email,Administrateur,Actif,Rôles,Password\n";
// $participants = $participantRepository->findAll();
$userList = $request->request->all('userList');
if (empty($userList)) {
// Aucun utilisateur sélectionné
$this->addFlash('warning', 'Veuillez sélectionner au moins un utilisateur.');
return $this->redirectToRoute('app_adminUser');
}
$participants = $participantRepository->findBy([
'idParticipant' => $userList,
]);
$csv = "Nom,Prénom,Pseudo,Téléphone,Email,Administrateur,Actif,Rôles\n";
foreach ($participants as $participant) {
$csv .= sprintf(
"%s,%s,%s,%s,%s,%s,%s,%s,%s\n",
"%s,%s,%s,%s,%s,%s,%s,%s\n",
$participant->getNom(),
$participant->getPrenom(),
$participant->getPseudo(),
@@ -260,7 +270,6 @@ class AdminController extends AbstractController
$participant->isAdministrateur() ? '1' : '0',
$participant->isActif() ? '1' : '0',
implode('|', $participant->getRoles()),
$participant->getPassword()
);
}
$response = new Response($csv);

View File

@@ -32,6 +32,7 @@ class RegistrationController extends AbstractController
$user->setRoles(['ROLE_USER']);
$user->setActif(false);
$user->setPending(true);
$fullName = $form->get('nom')->getData() . " " . $form->get('prenom')->getData();
if ($user->getRoles() == 'ROLE_ADMIN') {
$user->setAdministrateur(true);
} else {
@@ -48,7 +49,7 @@ class RegistrationController extends AbstractController
// do anything else you need here, like send an email
return $this->redirectToRoute('inscription');
return $this->render('main/inscription.html.twig', ['fullName' => $fullName]);
// return $security->login($user, 'form_login', 'main');
}

View File

@@ -17,16 +17,19 @@ use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\HttpFoundation\RequestStack;
class LoginFormAuthenticator extends AbstractAuthenticator
{
private $entityManager;
private $urlGenerator;
private RequestStack $requestStack;
public function __construct(EntityManagerInterface $entityManager, UrlGeneratorInterface $urlGenerator)
public function __construct(EntityManagerInterface $entityManager, UrlGeneratorInterface $urlGenerator, RequestStack $requestStack)
{
$this->entityManager = $entityManager;
$this->urlGenerator = $urlGenerator;
$this->requestStack = $requestStack;
}
public function supports(Request $request): ?bool
@@ -46,12 +49,14 @@ class LoginFormAuthenticator extends AbstractAuthenticator
'pseudo' => $identifier
]);
if (!$user || $user->isActif() || $user->getPending()) {
throw new UserNotFoundException('Utilisateur non trouvé');
if (!$user) {
$this->addFlash('error', 'Utilisateur inexistant');
throw new AuthenticationException('Identifiant ou mot de passe incorrect.');
}
if (!$user) {
throw new AuthenticationException('Identifiant ou mot de passe incorrect.');
if ($user->isActif() || $user->getPending()) {
$this->addFlash('error', "L'utilisateur à été désactivé par un administrateur ou est en attente.");
throw new UserNotFoundException('Utilisateur non trouvé');
}
// Utilisation de UserBadge au lieu de Participant directement
@@ -70,5 +75,13 @@ class LoginFormAuthenticator extends AbstractAuthenticator
{
return new RedirectResponse($this->urlGenerator->generate('app_login'));
}
private function addFlash(string $type, string $message): void
{
$session = $this->requestStack->getSession();
if ($session) {
$session->getFlashBag()->add($type, $message);
}
}
}