diff --git a/.env b/.env index cc08693..3c7998c 100644 --- a/.env +++ b/.env @@ -37,5 +37,5 @@ MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0 ###< symfony/messenger ### ###> symfony/mailer ### -MAILER_DSN=smtp:// +MAILER_DSN=smtp://dev-test@lidge.fr:N2uGKkGa8tQBp5NIvHIt@mail.lidge.fr:587 ###< symfony/mailer ### diff --git a/doctrine_migration_20241121090449.sql b/doctrine_migration_20241121090449.sql deleted file mode 100644 index d40272f..0000000 --- a/doctrine_migration_20241121090449.sql +++ /dev/null @@ -1,5 +0,0 @@ --- Doctrine Migration File Generated on 2024-11-21 09:04:49 - --- Version DoctrineMigrations\Version20241121085948 -ALTER TABLE sortie ADD CONSTRAINT FK_3C3FD3F2D936B2FA FOREIGN KEY (organisateur_id) REFERENCES participant (id_participant); -CREATE INDEX IDX_3C3FD3F2D936B2FA ON sortie (organisateur_id); diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index 92512f8..8f52699 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -8,6 +8,7 @@ use App\Entity\Site; use App\Entity\Ville; use App\Repository\ParticipantRepository; use App\Repository\SiteRepository; +use App\Repository\SortieRepository; use App\Repository\VilleRepository; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\EntityManagerInterface; @@ -137,6 +138,7 @@ class AdminController extends AbstractController $participant->setActif(false); $participant->setRoles(['ROLE_USER']); $participant->setPassword(password_hash("aChanger44!", PASSWORD_BCRYPT)); + $participant->setPending(true); $entityManager->persist($participant); @@ -202,6 +204,7 @@ class AdminController extends AbstractController $participant->setActif(false); $participant->setRoles(explode('|', $row[7])); $participant->setPassword(password_hash("aChanger44!", PASSWORD_BCRYPT)); + $participant->setPending(true); $em->persist($participant); // Générer un token unique @@ -278,68 +281,6 @@ class AdminController extends AbstractController return $response; } - //Gestion des villes - #[Route('/admin/city', name: 'app_adminCity')] - public function adminCity(VilleRepository $villeRepository, TokenStorageInterface $tokenStorage): Response - { - $token = $tokenStorage->getToken(); - $userConnect = $token?->getUser(); - return $this->render('admin/city.html.twig', [ - 'profile' => $userConnect, - 'citys' => $villeRepository->findAll(), - 'controller_name' => 'AdminController', - ]); - } - #[Route('/admin/city/add', name: 'app_adminCityAdd', methods: ['POST'])] - public function adminCityAdd(Request $request, EntityManagerInterface $entityManager): Response - { - try { - // Récupérer les données envoyées par le formulaire - $postalCode = $request->request->get('postalCode'); - $cityName = $request->request->get('citySelect'); - - // Vérifier que les champs ne sont pas vides - if (!$postalCode || !$cityName) { - 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 - $city = new Ville(); - $city->setNom($cityName); - $city->setCodePostal($postalCode); - - // Enregistrer la ville dans la base de données - $entityManager->persist($city); - $entityManager->flush(); - $this->addFlash('success', "Ville ajouté !"); - return $this->redirectToRoute('app_adminCity'); - } catch(\Exception $e) { - $this->addFlash('error', "Erreur : " . $e->getMessage()); - return $this->redirectToRoute('app_adminCity'); - } - } - #[Route('/admin/city/delete/{id}', name: 'app_adminCityDelete')] - public function adminCityDelete(string $id, VilleRepository $villeRepository, EntityManagerInterface $entityManager): RedirectResponse - { - // Récupérer la ville à supprimer - $city = $villeRepository->find($id); - - // Vérifier si la ville existe - if (!$city) { - // Si la ville n'existe pas, rediriger avec un message d'erreur - $this->addFlash('error', 'La ville demandée n\'existe pas.'); - return $this->redirectToRoute('app_adminCity'); // Rediriger vers la liste des villes - } - - // Supprimer la ville - $entityManager->remove($city); - $entityManager->flush(); - - // Ajouter un message de succès et rediriger vers la liste des villes - $this->addFlash('success', 'Ville supprimée avec succès.'); - return $this->redirectToRoute('app_adminCity'); - } - //Gestion des sites #[Route('/admin/site', name: 'app_adminSite')] public function adminSite(SiteRepository $siteRepository, TokenStorageInterface $tokenStorage): Response @@ -446,4 +387,17 @@ class AdminController extends AbstractController return $this->redirectToRoute('home'); } } + + #[Route('/admin/sortie', name: 'app_adminSortie')] + public function sortie(TokenStorageInterface $tokenStorage, SortieRepository $sortieRepository): Response + { + $token = $tokenStorage->getToken(); + $userConnect = $token?->getUser(); + return $this->render('admin/sortie.html.twig', [ + 'profile' => $userConnect, + 'controller_name' => 'AdminController', + 'sorties' => $sortieRepository->findAll(), + ]); + } + } diff --git a/src/Controller/ProfileController.php b/src/Controller/ProfileController.php index 5c3580c..1d88b23 100644 --- a/src/Controller/ProfileController.php +++ b/src/Controller/ProfileController.php @@ -29,11 +29,13 @@ class ProfileController extends AbstractController $userConnect = $token?->getUser(); $currentProfile = $profileRepo->findOneBy(['idParticipant' => $uuid]); if ($userConnect->getIdParticipant() !== $currentProfile->getIdParticipant()) { - $this->addFlash('error', "Vous ne pouvez pas consulter un profil qui n'est pas le votre"); - return $this->redirectToRoute('home'); + $isActiveUser = false; + } else { + $isActiveUser = true; } return $this->render('profile/view.html.twig', [ 'profile' => $currentProfile, + 'isActiveUser' => $isActiveUser, ]); } diff --git a/src/DataFixtures/SortieFixtures.php b/src/DataFixtures/SortieFixtures.php index b599ea4..eca4d56 100644 --- a/src/DataFixtures/SortieFixtures.php +++ b/src/DataFixtures/SortieFixtures.php @@ -14,8 +14,8 @@ class SortieFixtures extends Fixture $sortie->setNom('Sortie 1'); $sortie->setInfosSortie('Description de la sortie 1'); $sortie->setDuree(45); - $sortie->setDateHeureDebut(new \DateTime('2024-11-30 09:15:00')); - $sortie->setDateLimiteInscription(new \DateTime('2024-12-25 12:30:00')); + $sortie->setDateHeureDebut(new \DateTimeImmutable('2024-11-30 09:15:00')); + $sortie->setDateLimiteInscription(new \DateTimeImmutable('2024-12-25 12:30:00')); $sortie->setNbInscriptionsMax(25); $manager->persist($sortie); diff --git a/src/DataFixtures/UserFixtures.php b/src/DataFixtures/UserFixtures.php index ba62888..5fc343b 100644 --- a/src/DataFixtures/UserFixtures.php +++ b/src/DataFixtures/UserFixtures.php @@ -23,6 +23,7 @@ class UserFixtures extends Fixture $olivier->setEmail('olivier@gmail.com'); $olivier->setRoles(['ROLE_USER', 'ROLE_ADMIN']); $olivier->setAdministrateur(true); + $olivier->setPending(false); $olivier->setActif(false); $olivier->setPassword($this->userPasswordHasher->hashPassword($olivier, 'test-44')); $manager->persist($olivier); @@ -35,6 +36,7 @@ class UserFixtures extends Fixture $johan->setEmail('leroyjohan3@gmail.com'); $johan->setRoles(['ROLE_USER', 'ROLE_ADMIN']); $johan->setAdministrateur(true); + $johan->setPending(false); $johan->setActif(false); $johan->setPassword($this->userPasswordHasher->hashPassword($johan, 'Vn21pd%6a%Hw5j')); $manager->persist($johan); @@ -47,6 +49,7 @@ class UserFixtures extends Fixture $marvin->setEmail('marvin@gmail.com'); $marvin->setRoles(['ROLE_USER', 'ROLE_ADMIN']); $marvin->setAdministrateur(true); + $marvin->setPending(false); $marvin->setActif(false); $marvin->setPassword($this->userPasswordHasher->hashPassword($marvin, 'test-44')); $manager->persist($marvin); diff --git a/templates/admin/city.html.twig b/templates/admin/city.html.twig deleted file mode 100644 index a9260a1..0000000 --- a/templates/admin/city.html.twig +++ /dev/null @@ -1,119 +0,0 @@ -{% extends 'main/base.html.twig' %} - -{% block title %}📣 Sortie.com Admin City 🔊{% endblock %} - -{% block content %} -
- {% include 'admin/sidebar.html.twig' %} - - -
-

Gestion des villes

- - -
- - -
- - -
- - - - - - - - - - {% for city in citys %} - - - - - - {% else %} - - - - {% endfor %} - -
NomCode postalActions
{{ city.nom }}{{ city.codePostal }} - Supprimer -
Aucune ville trouvée
-
-
- - - - - -
-{% endblock %} diff --git a/templates/admin/index.html.twig b/templates/admin/index.html.twig index d912f7d..ef0e495 100644 --- a/templates/admin/index.html.twig +++ b/templates/admin/index.html.twig @@ -3,11 +3,10 @@ {% block title %}📣 Sortie.com Admin 🔊{% endblock %} {% block content %} -
- +
{% include 'admin/sidebar.html.twig' %} -
+

Bienvenue sur le Panel d'Administration

Utilisez le menu pour accéder aux différentes sections.

diff --git a/templates/admin/sidebar.html.twig b/templates/admin/sidebar.html.twig index 5d34fef..099f60e 100644 --- a/templates/admin/sidebar.html.twig +++ b/templates/admin/sidebar.html.twig @@ -1,4 +1,4 @@ - diff --git a/templates/admin/sortie.html.twig b/templates/admin/sortie.html.twig new file mode 100644 index 0000000..c91d807 --- /dev/null +++ b/templates/admin/sortie.html.twig @@ -0,0 +1,69 @@ +{% extends 'main/base.html.twig' %} + +{% block title %}📣 Sortie.com Admin User 🔊{% endblock %} + +{% block content %} +
+ {% include 'admin/sidebar.html.twig' %} + + +
+

Gestion des sorties

+ + +
+
+ + + + + + + + + + + + + + + + + + {% for sortie in sorties %} + + + + + + + + + + + + + + {% else %} + + + + {% endfor %} + +
NomDate débutduréeDate fin d'inscriptionNombre limite d'inscriptionOrganisateurSiteLieuEtatActions
{{ sortie.nom }}{{ sortie.dateHeureDebut }}{{ sortie.duree }}{{ sortie.dateLimiteInscription }}{{ sortie.nbInscriptionsMax }}{{ sortie.organisateur.pseudo }}{{ sortie.site.nom }}{{ sortie.lieu.nom }}{{ sortie.etat.libelle }} + {# {% if not sortie.etat %} + + {% endif %} + + Logo + + + Logo + #} +
Aucune sortie trouvé
+
+
+ +
+
+{% endblock %} \ No newline at end of file diff --git a/templates/main/footer.html.twig b/templates/main/footer.html.twig index 28be863..19480b9 100644 --- a/templates/main/footer.html.twig +++ b/templates/main/footer.html.twig @@ -1,15 +1,5 @@ - - - - - {% block stylesheets %} - {{ encore_entry_link_tags('app') }} - {% endblock %} - - - -
- ENI © Sortie {{ "now"|date("Y") }} -
- - \ No newline at end of file +
+
+ ENI © Sortie {{ "now"|date("Y") }} +
+
\ No newline at end of file diff --git a/templates/profile/view.html.twig b/templates/profile/view.html.twig index 2f6a387..1dd6d21 100644 --- a/templates/profile/view.html.twig +++ b/templates/profile/view.html.twig @@ -28,13 +28,19 @@ {{ profile.telephone }} - {{ profile.email }}
+ {% if isActiveUser %}
+ {% endif %}
{% endblock %} \ No newline at end of file