des trucs

This commit is contained in:
mepiphana2023
2024-11-29 13:23:55 +01:00
parent 32556512eb
commit bd9b98b0d1
11 changed files with 5 additions and 83 deletions

View File

@@ -44,7 +44,6 @@ class AdminController extends AbstractController
]);
}
//Gestion des utilisateurs
#[Route('/admin/user', name: 'app_adminUser')]
public function adminUser(TokenStorageInterface $tokenStorage): Response
{
@@ -59,68 +58,56 @@ class AdminController extends AbstractController
#[Route('/admin/user/disable/{id}', name: 'app_adminUserDisable')]
public function disableParticipant(string $id, ParticipantRepository $participantRepository, EntityManagerInterface $entityManager): RedirectResponse
{
// Récupérer le participant à partir de l'id
$participant = $participantRepository->find($id);
// Vérifier si le participant existe
if (!$participant) {
$this->addFlash('error', 'Le participant demandé n\'existe pas.');
return $this->redirectToRoute('app_adminUser'); // Redirigez vers une liste ou une autre page
return $this->redirectToRoute('app_adminUser');
}
// Désactiver le participant (par exemple, définir une propriété "isActive" à false)
if ($participant->isActif()){
$participant->setActif(false);
}else{
$participant->setActif(true);
}
// Sauvegarder la modification en base de données
$entityManager->persist($participant);
$entityManager->flush();
// Ajouter un message de succès et rediriger
$this->addFlash('success', 'Participant désactivé avec succès.');
return $this->redirectToRoute('app_adminUser');
}
#[Route('/admin/user/delete/{id}', name: 'app_adminUserDelete')]
public function deleteUser(string $id, ParticipantRepository $participantRepository, EntityManagerInterface $entityManager): RedirectResponse
{
// Récupérer l'utilisateur ou le participant à partir de l'id
$participant = $participantRepository->find($id);
// Vérifier si l'utilisateur existe
if (!$participant) {
$this->addFlash('error', 'L\'utilisateur demandé n\'existe pas.');
return $this->redirectToRoute('app_adminUser'); // Redirigez vers une liste ou une autre page
}
// Supprimer l'utilisateur
$entityManager->remove($participant);
$entityManager->flush();
// Ajouter un message de succès et rediriger
$this->addFlash('success', 'Utilisateur supprimé avec succès.');
return $this->redirectToRoute('app_adminUser'); // Redirigez vers la liste des utilisateurs
return $this->redirectToRoute('app_adminUser');
}
#[Route('/admin/user/add', name: 'app_adminUserAdd', methods: ['POST'])]
public function userAdd(Request $request, EntityManagerInterface $entityManager, MailerInterface $mailer, UrlGeneratorInterface $urlGenerator): Response
{
try {
// Récupérer les données envoyées par le formulaire
$nom = $request->request->get('nom');
$prenom = $request->request->get('prenom');
$pseudo = $request->request->get('pseudo');
$telephone = $request->request->get('phone');
$mail = $request->request->get('mail');
// Vérifier que les champs ne sont pas vides
if (!$mail || !$pseudo) {
$this->addFlash('error', 'Tous les champs sont requis.');
return $this->redirectToRoute('app_adminUser');
}
// Vérifier que le mail est valide avec une regex
if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
$this->addFlash('error', 'L\'adresse e-mail n\'est pas valide.');
return $this->redirectToRoute('app_adminUser');
@@ -140,10 +127,8 @@ class AdminController extends AbstractController
$entityManager->persist($participant);
// Générer un token unique
$token = bin2hex(random_bytes(32));
// Enregistrer le token dans la base de données
$passwordResetToken = new PasswordResetToken();
$passwordResetToken->setToken($token)
->setEmail($participant->getEmail())
@@ -152,14 +137,12 @@ class AdminController extends AbstractController
$entityManager->persist($passwordResetToken);
$entityManager->flush();
// Générer un lien de réinitialisation
$resetLink = $urlGenerator->generate(
'app_password_reset',
['token' => $token],
UrlGeneratorInterface::ABSOLUTE_URL
);
// Envoyer un email de notification
$email = (new Email())
->from('contact@sortir.com')
->to($participant->getEmail())
@@ -205,10 +188,8 @@ class AdminController extends AbstractController
$participant->setPending(true);
$em->persist($participant);
// Générer un token unique
$token = bin2hex(random_bytes(32));
// Enregistrer le token dans la base de données
$passwordResetToken = new PasswordResetToken();
$passwordResetToken->setToken($token)
->setEmail($participant->getEmail())
@@ -216,14 +197,12 @@ class AdminController extends AbstractController
$em->persist($passwordResetToken);
// Générer un lien de réinitialisation
$resetLink = $urlGenerator->generate(
'app_password_reset',
['token' => $token],
UrlGeneratorInterface::ABSOLUTE_URL
);
// Envoyer un email de notification
$email = (new Email())
->from('contact@sortir.com')
->to($participant->getEmail())
@@ -252,7 +231,6 @@ class AdminController extends AbstractController
// $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');
}
@@ -279,7 +257,6 @@ class AdminController extends AbstractController
return $response;
}
//Gestion des sites
#[Route('/admin/site', name: 'app_adminSite')]
public function adminSite(SiteRepository $siteRepository, TokenStorageInterface $tokenStorage): Response
{
@@ -295,19 +272,15 @@ class AdminController extends AbstractController
public function adminSiteAdd(Request $request, EntityManagerInterface $entityManager): Response
{
try {
// Récupérer les données envoyées par le formulaire
$nom = $request->request->get('nom');
// Vérifier que les champs ne sont pas vides
if (!$nom) {
return new Response('Tous les champs sont requis.', Response::HTTP_BAD_REQUEST);
}
// Créer une nouvelle entité City et définir ses propriétés
$site = new Site();
$site->setNom($nom);
// Enregistrer la ville dans la base de données
$entityManager->persist($site);
$entityManager->flush();
$this->addFlash('success', "Site ajouté !");
@@ -320,17 +293,13 @@ class AdminController extends AbstractController
#[Route('/admin/site/delete/{id}', name: 'app_adminSiteDelete')]
public function adminSiteDelete(string $id, SiteRepository $siteRepository, EntityManagerInterface $entityManager): RedirectResponse
{
// Récupérer la ville à supprimer
$site = $siteRepository->find($id);
// Vérifier si la ville existe
if (!$site) {
// Si la ville n'existe pas, rediriger avec un message d'erreur
$this->addFlash('error', 'Le site demandée n\'existe pas.');
return $this->redirectToRoute('app_adminSite'); // Rediriger vers la liste des villes
}
// Supprimer la ville
$entityManager->remove($site);
$entityManager->flush();

View File

@@ -20,10 +20,8 @@ class LoginController extends AbstractController
return $this->redirectToRoute('home'); // Redirection pour utilisateurs connectés
}
// get the login error if there is one
$error = $authenticationUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authenticationUtils->getLastUsername();
$user = new Participant();
$formUser = $this->createForm(RegistrationFormType::class, $user);
@@ -38,7 +36,6 @@ class LoginController extends AbstractController
#[Route(path: '/logout', name: 'app_logout')]
public function logout(Security $security): ?Response
{
// throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
return $security->logout(false);
}
}

View File

@@ -17,7 +17,6 @@ class MainController extends AbstractController
#[Route('/', name: 'home')]
public function home(SortieRepository $sortieRepository, TokenStorageInterface $tokenStorage,): Response
{
// Récupérer les 5 dernières sorties
$latestSorties = $sortieRepository->findBy([], ['dateHeureDebut' => 'DESC'], 5);
$dateLimit = new \DateTime();
$dateLimit->modify('-30 days'); // Date limite = il y a 30 jours

View File

@@ -30,16 +30,13 @@ class PasswordResetController extends AbstractController
try{
$email = $request->request->get('email');
// Vérifier si l'email est valide
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->addFlash('error', 'Adresse e-mail invalide.');
return $this->redirectToRoute('app_login');
}
// Générer un token unique
$token = bin2hex(random_bytes(32));
// Enregistrer le token dans la base de données
$passwordResetToken = new PasswordResetToken();
$passwordResetToken->setToken($token)
->setEmail($email)
@@ -55,7 +52,6 @@ class PasswordResetController extends AbstractController
UrlGeneratorInterface::ABSOLUTE_URL
);
// Envoyer l'email avec le lien
$email = (new Email())
->from('contact@sortir.com')
->to($email)
@@ -79,7 +75,6 @@ class PasswordResetController extends AbstractController
Request $request,
EntityManagerInterface $entityManager,
): Response {
// Vérifier si le token existe
$repository = $entityManager->getRepository(PasswordResetToken::class);
$passwordResetToken = $repository->findOneBy(['token' => $token]);
@@ -88,14 +83,11 @@ class PasswordResetController extends AbstractController
return $this->redirectToRoute('app_login');
}
// Si la requête est POST, traiter le nouveau mot de passe
if ($request->isMethod('POST')) {
$newPassword = $request->request->get('password');
$newPasswordConfirm = $request->request->get('passwordConfirm');
// Vérifier si les mots de passe sont identiques
if ($newPassword !== $newPasswordConfirm) {
// Les mots de passe ne correspondent pas
$this->addFlash('error', 'Les mots de passe ne correspondent pas.');
return $this->redirectToRoute('app_password_reset'); // Vous pouvez rediriger vers la page de réinitialisation
}
@@ -105,7 +97,6 @@ class PasswordResetController extends AbstractController
return $this->redirectToRoute('app_password_reset', ['token' => $token]);
}
// Récupérer l'utilisateur et mettre à jour le mot de passe
$user = $entityManager->getRepository(Participant::class)->findOneBy(['email' => $passwordResetToken->getEmail()]);
$user->setPassword(password_hash($newPassword, PASSWORD_BCRYPT));

View File

@@ -27,7 +27,6 @@ class RegistrationController extends AbstractController
/** @var string $plainPassword */
$plainPassword = $form->get('plainPassword')->getData();
// encode the plain password
$user->setPassword($userPasswordHasher->hashPassword($user, $plainPassword));
$user->setRoles(['ROLE_USER']);
$user->setActif(false);
@@ -47,7 +46,6 @@ class RegistrationController extends AbstractController
return $this->redirectToRoute('app_register');
}
// do anything else you need here, like send an email
return $this->render('main/inscription.html.twig', ['fullName' => $fullName]);
// return $security->login($user, 'form_login', 'main');

View File

@@ -33,7 +33,6 @@ class SortieController extends AbstractController
$token = $tokenStorage->getToken();
$userConnect = $token?->getUser();
// Récupérer les paramètres de filtre
$search = $request->query->get('search', '');
$siteId = $request->query->get('site', '');
$startDate = $request->query->get('start_date', '');
@@ -43,7 +42,6 @@ class SortieController extends AbstractController
$nonInscrit = $request->query->get('non_inscrit', false);
$passees = $request->query->get('passees', false);
// Recherche par nom de sortie
$sorties = $sortieRepository->findWithFilters($search, $siteId, $startDate, $endDate, $organisateur, $inscrit, $nonInscrit, $passees, $userConnect);
return $this->render('sortie/list.html.twig', [
@@ -81,20 +79,17 @@ class SortieController extends AbstractController
return $this->redirectToRoute('sortie_create');
}
// Vérifier le participant (organisateur)
$participant = $participantRepository->find($userConnect->getIdParticipant());
if (!$participant) {
$this->addFlash('error', 'Impossible de trouver votre profil.');
return $this->redirectToRoute('sortie_create');
}
// Gérer l'image (upload)
$imageFile = $form->get('imageFile')->getData();
if ($imageFile) {
$sortie->setImageFile($imageFile);
}
// Définir les relations et l'état initial
$etat = $etatRepository->findOneBy(['libelle' => 'Créée']);
if (!$etat) {
$this->addFlash('error', 'Erreur interne : état introuvable.');
@@ -243,13 +238,11 @@ class SortieController extends AbstractController
$sortie->setLieu($lieu);
}
// Gestion du fichier image
$imageFile = $form->get('imageFile')->getData();
if ($imageFile) {
$sortie->setImageFile($imageFile);
}
// Sauvegarde des modifications
$entityManager->flush();
$this->addFlash('success', 'Les modifications ont été enregistrées.');

View File

@@ -23,12 +23,10 @@ class UserProfileListener implements EventSubscriberInterface
{
$token = $this->tokenStorage->getToken();
// Vérifie si l'utilisateur est connecté
if ($token && $token->getUser()) {
$profile = $token->getUser(); // Récupère l'utilisateur connecté
$profile = $token->getUser();
$event->getRequest()->attributes->set('profile', $profile);
// Ajoute 'profile' à toutes les vues Twig
$this->twig->addGlobal('profile', $profile);
}
}