user gestion fully done
This commit is contained in:
@@ -9,6 +9,7 @@ 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;
|
||||
@@ -376,4 +377,49 @@ class AdminController extends AbstractController
|
||||
$this->addFlash('success', 'Site supprimée avec succès.');
|
||||
return $this->redirectToRoute('app_adminSite');
|
||||
}
|
||||
|
||||
#[Route('/admin/accept', name: 'app_acceptUser')]
|
||||
public function acceptUser(Request $request, EntityManagerInterface $entityManager, ParticipantRepository $participantRepository): Response
|
||||
{
|
||||
try {
|
||||
$user = $participantRepository->findOneBy(["idParticipant" => $request->get('id')]);
|
||||
|
||||
if(!$user) {
|
||||
$this->addFlash('error', 'Le utilisateur n\'existe pas.');
|
||||
return $this->redirectToRoute('app_adminUser');
|
||||
}
|
||||
|
||||
$user->setPending(false);
|
||||
$entityManager->persist($user);
|
||||
$entityManager->flush();
|
||||
|
||||
$this->addFlash('success', "L'utilisateur à bien été accepté et peut maintenant se connecter");
|
||||
return $this->redirectToRoute('app_adminUser');
|
||||
} catch(\Exception $e) {
|
||||
$this->addFlash('error', "Erreur : " . $e->getMessage());
|
||||
return $this->redirectToRoute('home');
|
||||
}
|
||||
}
|
||||
|
||||
#[Route('/admin/deny', name: 'app_denyUser')]
|
||||
public function denyUser(Request $request, EntityManagerInterface $entityManager, ParticipantRepository $participantRepository): Response
|
||||
{
|
||||
try {
|
||||
$user = $participantRepository->findOneBy(["idParticipant" => $request->get('id')]);
|
||||
|
||||
if(!$user) {
|
||||
$this->addFlash('error', 'Le utilisateur n\'existe pas.');
|
||||
return $this->redirectToRoute('app_adminUser');
|
||||
}
|
||||
|
||||
$entityManager->remove($user);
|
||||
$entityManager->flush();
|
||||
|
||||
$this->addFlash('success', "L'utilisateur à bien été refusé et ne pourra pas se connecter");
|
||||
return $this->redirectToRoute('app_adminUser');
|
||||
} catch(\Exception $e) {
|
||||
$this->addFlash('error', "Erreur : " . $e->getMessage());
|
||||
return $this->redirectToRoute('home');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,4 +18,10 @@ class MainController extends AbstractController
|
||||
'profile' => $userConnect,
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route('/inscription', name: 'inscription')]
|
||||
public function inscription(TokenStorageInterface $tokenStorage): Response
|
||||
{
|
||||
return $this->render('main/inscription.html.twig');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ class RegistrationController extends AbstractController
|
||||
$user->setPassword($userPasswordHasher->hashPassword($user, $plainPassword));
|
||||
$user->setRoles(['ROLE_USER']);
|
||||
$user->setActif(false);
|
||||
$user->setPending(true);
|
||||
if ($user->getRoles() == 'ROLE_ADMIN') {
|
||||
$user->setAdministrateur(true);
|
||||
} else {
|
||||
@@ -47,8 +48,8 @@ class RegistrationController extends AbstractController
|
||||
|
||||
// do anything else you need here, like send an email
|
||||
|
||||
// return $this->redirectToRoute('home');
|
||||
return $security->login($user, 'form_login', 'main');
|
||||
return $this->redirectToRoute('inscription');
|
||||
// return $security->login($user, 'form_login', 'main');
|
||||
}
|
||||
|
||||
return $this->render('auth/register.html.twig', [
|
||||
|
||||
@@ -41,6 +41,9 @@ class Participant implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
#[ORM\Column]
|
||||
private ?bool $actif = null;
|
||||
|
||||
#[ORM\Column]
|
||||
private ?bool $pending = null;
|
||||
|
||||
#[ORM\Column]
|
||||
private array $roles = [];
|
||||
|
||||
@@ -82,6 +85,16 @@ class Participant implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPending(): ?bool
|
||||
{
|
||||
return $this->pending;
|
||||
}
|
||||
|
||||
public function setPending(?bool $pending): void
|
||||
{
|
||||
$this->pending = $pending;
|
||||
}
|
||||
|
||||
public function getPseudo(): ?string
|
||||
{
|
||||
return $this->pseudo;
|
||||
|
||||
@@ -46,7 +46,7 @@ class LoginFormAuthenticator extends AbstractAuthenticator
|
||||
'pseudo' => $identifier
|
||||
]);
|
||||
|
||||
if (!$user || $user->isActif()) {
|
||||
if (!$user || $user->isActif() || $user->getPending()) {
|
||||
throw new UserNotFoundException('Utilisateur non trouvé');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user