diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 2f23ef7..9a7f3a1 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -1,7 +1,7 @@ security: # https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords password_hashers: - Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'plaintext' # à mettre en auto pour sécuriser les mdp + Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto' # à mettre en auto pour sécuriser les mdp # https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider providers: # used to reload user from session & other features (e.g. switch_user) diff --git a/src/Controller/AnnouncementController.php b/src/Controller/AnnouncementController.php index 707e1fc..73f9f91 100644 --- a/src/Controller/AnnouncementController.php +++ b/src/Controller/AnnouncementController.php @@ -5,6 +5,7 @@ namespace App\Controller; use App\Entity\Announcement; use App\Form\AnnouncementType; use App\Repository\AnnouncementRepository; +use App\Repository\InternApplicationRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -14,8 +15,14 @@ use Symfony\Component\Routing\Attribute\Route; #[Route('/announcement')] final class AnnouncementController extends AbstractController { + + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly AnnouncementRepository $announcementRepository, + private readonly InternApplicationRepository $internApplicationRepository + ){} #[Route('/', name: 'app_announcement_index')] - public function list(Request $request, AnnouncementRepository $announcementRepository): Response + public function list(Request $request,): Response { $user = $this->getUser(); $announcements = []; @@ -28,9 +35,9 @@ final class AnnouncementController extends AbstractController $showNonValidated = $request->query->get('show_non_validated'); if ($showNonValidated) { - $announcements = $announcementRepository->findBy(['status' => 'notVerified']); + $announcements = $this->announcementRepository->findBy(['status' => 'notVerified']); } else { - $announcements = $announcementRepository->findAll(); + $announcements = $this->announcementRepository->findAll(); } } @@ -38,16 +45,16 @@ final class AnnouncementController extends AbstractController $company = $user->getCompany(); if ($company) { - $announcements = $announcementRepository->findBy(['company' => $company]); + $announcements = $this->announcementRepository->findBy(['company' => $company]); } } if (in_array('ROLE_INTERN', $user->getRoles())) { - $announcements = $announcementRepository->findBy(['status' => 'Verified']); + $announcements = $this->announcementRepository->findBy(['status' => 'Verified']); } if ($companyName || $location || $category) { - $announcements = $announcementRepository->searchAnnouncements($companyName, $location, $category); + $announcements = $this->announcementRepository->searchAnnouncements($companyName, $location, $category); } $favorites = []; @@ -68,7 +75,7 @@ final class AnnouncementController extends AbstractController #[Route('/new', name: 'app_announcement_new', methods: ['GET', 'POST'])] - public function new(Request $request, EntityManagerInterface $entityManager): Response + public function new(Request $request,): Response { /*$user = $this->getUser(); @@ -89,8 +96,8 @@ final class AnnouncementController extends AbstractController if ($form->isSubmitted() && $form->isValid()) { $announcement->setCreationDate(new \DateTime()); $announcement->setStatus('notVerified'); - $entityManager->persist($announcement); - $entityManager->flush(); + $this->entityManager->persist($announcement); + $this->entityManager->flush(); return $this->redirectToRoute('app_announcement_index', [], Response::HTTP_SEE_OTHER); } @@ -110,13 +117,13 @@ final class AnnouncementController extends AbstractController } #[Route('/{id}/edit', name: 'app_announcement_edit', methods: ['GET', 'POST'])] - public function edit(Request $request, Announcement $announcement, EntityManagerInterface $entityManager): Response + public function edit(Request $request, Announcement $announcement,): Response { $form = $this->createForm(AnnouncementType::class, $announcement); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_announcement_index', [], Response::HTTP_SEE_OTHER); } @@ -128,23 +135,23 @@ final class AnnouncementController extends AbstractController } #[Route('/{id}', name: 'app_announcement_delete', methods: ['POST'])] - public function delete(Request $request, Announcement $announcement, EntityManagerInterface $entityManager): Response + public function delete(Request $request, Announcement $announcement,): Response { if ($this->isCsrfTokenValid('delete'.$announcement->getId(), $request->getPayload()->getString('_token'))) { - $entityManager->remove($announcement); - $entityManager->flush(); + $this->entityManager->remove($announcement); + $this->entityManager->flush(); } return $this->redirectToRoute('app_announcement_index', [], Response::HTTP_SEE_OTHER); } #[Route('/{id}/validate', name: 'app_announcement_validate', methods: ['POST'])] - public function validate(Request $request, Announcement $announcement, EntityManagerInterface $entityManager): Response + public function validate(Request $request, Announcement $announcement,): Response { if ($announcement->getStatus() !== 'Verified') { $announcement->setStatus('Verified'); - $entityManager->flush(); + $this->entityManager->flush(); } return $this->redirectToRoute('app_announcement_show', ['id' => $announcement->getId()], Response::HTTP_SEE_OTHER); diff --git a/src/Controller/CompanyController.php b/src/Controller/CompanyController.php index 55cfd87..9c29ce5 100644 --- a/src/Controller/CompanyController.php +++ b/src/Controller/CompanyController.php @@ -4,7 +4,9 @@ namespace App\Controller; use App\Entity\Company; use App\Form\CompanyType; +use App\Repository\AnnouncementRepository; use App\Repository\CompanyRepository; +use App\Repository\InternApplicationRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -15,25 +17,31 @@ use Symfony\Component\Security\Http\Attribute\IsGranted; #[Route('/company')] final class CompanyController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly InternApplicationRepository $internApplicationRepository, + private readonly AnnouncementRepository $announcementRepository, + private readonly CompanyRepository $companyRepository, + ){} #[Route(name: 'app_company_index', methods: ['GET'])] - public function index(CompanyRepository $companyRepository): Response + public function index(): Response { return $this->render('company/index.html.twig', [ - 'companies' => $companyRepository->findAll(), + 'companies' => $this->companyRepository->findAll(), ]); } #[Route('/new', name: 'app_company_new', methods: ['GET', 'POST'])] #[IsGranted('ROLE_ADMIN')] - public function new(Request $request, EntityManagerInterface $entityManager): Response + public function new(Request $request,): Response { $company = new Company(); $form = $this->createForm(CompanyType::class, $company); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->persist($company); - $entityManager->flush(); + $this->entityManager->persist($company); + $this->entityManager->flush(); return $this->redirectToRoute('app_company_index', [], Response::HTTP_SEE_OTHER); } @@ -54,13 +62,13 @@ final class CompanyController extends AbstractController #[Route('/{id}/edit', name: 'app_company_edit', methods: ['GET', 'POST'])] #[IsGranted('ROLE_ADMIN')] - public function edit(Request $request, Company $company, EntityManagerInterface $entityManager): Response + public function edit(Request $request, Company $company,): Response { $form = $this->createForm(CompanyType::class, $company); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_company_index', [], Response::HTTP_SEE_OTHER); } @@ -72,11 +80,11 @@ final class CompanyController extends AbstractController } #[Route('/{id}', name: 'app_company_delete', methods: ['POST'])] - public function delete(Request $request, Company $company, EntityManagerInterface $entityManager): Response + public function delete(Request $request, Company $company,): Response { if ($this->isCsrfTokenValid('delete'.$company->getId(), $request->getPayload()->getString('_token'))) { - $entityManager->remove($company); - $entityManager->flush(); + $this->entityManager->remove($company); + $this->entityManager->flush(); } return $this->redirectToRoute('app_company_index', [], Response::HTTP_SEE_OTHER); diff --git a/src/Controller/DegreeController.php b/src/Controller/DegreeController.php index d4e2469..82bee2f 100644 --- a/src/Controller/DegreeController.php +++ b/src/Controller/DegreeController.php @@ -5,7 +5,9 @@ namespace App\Controller; use App\Entity\Degree; use App\Entity\InternDegree; use App\Form\DegreeType; +use App\Repository\AnnouncementRepository; use App\Repository\DegreeRepository; +use App\Repository\InternApplicationRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -15,24 +17,30 @@ use Symfony\Component\Routing\Attribute\Route; #[Route('/degree')] final class DegreeController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly InternApplicationRepository $internApplicationRepository, + private readonly AnnouncementRepository $announcementRepository, + private readonly DegreeRepository $degreeRepository, + ){} #[Route(name: 'app_degree_index', methods: ['GET'])] - public function index(DegreeRepository $degreeRepository): Response + public function index(): Response { return $this->render('degree/index.html.twig', [ - 'degrees' => $degreeRepository->findAll(), + 'degrees' => $this->degreeRepository->findAll(), ]); } #[Route('/new', name: 'app_degree_new', methods: ['GET', 'POST'])] - public function new(Request $request, EntityManagerInterface $entityManager): Response + public function new(Request $request,): Response { $degree = new Degree(); $form = $this->createForm(DegreeType::class, $degree); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->persist($degree); - $entityManager->flush(); + $this->entityManager->persist($degree); + $this->entityManager->flush(); return $this->redirectToRoute('app_degree_index', [], Response::HTTP_SEE_OTHER); } @@ -52,13 +60,13 @@ final class DegreeController extends AbstractController } #[Route('/{id}/edit', name: 'app_degree_edit', methods: ['GET', 'POST'])] - public function edit(Request $request, Degree $degree, EntityManagerInterface $entityManager): Response + public function edit(Request $request, Degree $degree,): Response { $form = $this->createForm(DegreeType::class, $degree); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_degree_index', [], Response::HTTP_SEE_OTHER); } @@ -70,11 +78,11 @@ final class DegreeController extends AbstractController } #[Route('/{id}', name: 'app_degree_delete', methods: ['POST'])] - public function delete(Request $request, Degree $degree, EntityManagerInterface $entityManager): Response + public function delete(Request $request, Degree $degree,): Response { if ($this->isCsrfTokenValid('delete'.$degree->getId(), $request->getPayload()->getString('_token'))) { - $entityManager->remove($degree); - $entityManager->flush(); + $this->entityManager->remove($degree); + $this->entityManager->flush(); } return $this->redirectToRoute('app_degree_index', [], Response::HTTP_SEE_OTHER); diff --git a/src/Controller/FAQController.php b/src/Controller/FAQController.php index d8db205..735968e 100644 --- a/src/Controller/FAQController.php +++ b/src/Controller/FAQController.php @@ -4,7 +4,9 @@ namespace App\Controller; use App\Entity\FAQ; use App\Form\FAQType; +use App\Repository\AnnouncementRepository; use App\Repository\FAQRepository; +use App\Repository\InternApplicationRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -15,17 +17,23 @@ use Symfony\Component\Security\Http\Attribute\IsGranted; #[Route('/faq')] final class FAQController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly AnnouncementRepository $announcementRepository, + private readonly InternApplicationRepository $internApplicationRepository, + private readonly FaqRepository $faqRepository, + ){} #[Route(name: 'app_faq_index', methods: ['GET'])] - public function index(FAQRepository $fAQRepository): Response + public function index(): Response { return $this->render('faq/index.html.twig', [ - 'faqs' => $fAQRepository->findAll(), + 'faqs' => $this->faqRepository->findAll(), ]); } #[Route('/new', name: 'app_faq_new', methods: ['GET', 'POST'])] #[IsGranted('ROLE_ADMIN')] - public function new(Request $request, EntityManagerInterface $entityManager): Response + public function new(Request $request,): Response { $fAQ = new FAQ(); $form = $this->createForm(FAQType::class, $fAQ); @@ -33,8 +41,8 @@ final class FAQController extends AbstractController if ($form->isSubmitted() && $form->isValid()) { $fAQ->setUpdateDate(new \DateTime()); - $entityManager->persist($fAQ); - $entityManager->flush(); + $this->entityManager->persist($fAQ); + $this->entityManager->flush(); return $this->redirectToRoute('app_faq_index', [], Response::HTTP_SEE_OTHER); } @@ -55,14 +63,14 @@ final class FAQController extends AbstractController #[Route('/{id}/edit', name: 'app_faq_edit', methods: ['GET', 'POST'])] #[IsGranted('ROLE_ADMIN')] - public function edit(Request $request, FAQ $fAQ, EntityManagerInterface $entityManager): Response + public function edit(Request $request, FAQ $fAQ,): Response { $form = $this->createForm(FAQType::class, $fAQ); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $fAQ->setUpdateDate(new \DateTime()); - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_faq_index', [], Response::HTTP_SEE_OTHER); } @@ -75,11 +83,11 @@ final class FAQController extends AbstractController #[Route('/{id}', name: 'app_faq_delete', methods: ['POST'])] #[IsGranted('ROLE_ADMIN')] - public function delete(Request $request, FAQ $fAQ, EntityManagerInterface $entityManager): Response + public function delete(Request $request, FAQ $fAQ,): Response { if ($this->isCsrfTokenValid('delete'.$fAQ->getId(), $request->getPayload()->getString('_token'))) { - $entityManager->remove($fAQ); - $entityManager->flush(); + $this->entityManager->remove($fAQ); + $this->entityManager->flush(); } return $this->redirectToRoute('app_faq_index', [], Response::HTTP_SEE_OTHER); diff --git a/src/Controller/IndexController.php b/src/Controller/IndexController.php index 5cce937..6b14579 100644 --- a/src/Controller/IndexController.php +++ b/src/Controller/IndexController.php @@ -3,7 +3,9 @@ namespace App\Controller; use App\Entity\UserApp; +use App\Repository\AnnouncementRepository; use App\Repository\CompanyRepository; +use App\Repository\InternApplicationRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; @@ -15,6 +17,8 @@ class IndexController extends AbstractController public function __construct( private HttpClientInterface $client, private readonly CompanyRepository $companyRepository, + private readonly AnnouncementRepository $announcementRepository, + private readonly InternApplicationRepository $internApplicationRepository ) { } diff --git a/src/Controller/InternController.php b/src/Controller/InternController.php index 7e08ded..4ed8d1c 100644 --- a/src/Controller/InternController.php +++ b/src/Controller/InternController.php @@ -10,7 +10,12 @@ use App\Entity\InternDegree; use App\Entity\InternSkill; use App\Entity\Skill; use App\Form\InternType; +use App\Repository\AnnouncementRepository; +use App\Repository\DegreeRepository; +use App\Repository\InternApplicationRepository; +use App\Repository\InternDegreeRepository; use App\Repository\InternRepository; +use App\Repository\InternSkillRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -20,11 +25,20 @@ use Symfony\Component\Routing\Attribute\Route; #[Route('/intern')] final class InternController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly AnnouncementRepository $announcementRepository, + private readonly InternRepository $internRepository, + private readonly InternApplicationRepository $internApplicationRepository, + private readonly InternDegreeRepository $internDegreeRepository, + private readonly InternSkillRepository $internSkillRepository, + private readonly DegreeRepository $degreeRepository, + ){} #[Route(name: 'app_intern_index', methods: ['GET'])] - public function index(InternRepository $internRepository): Response + public function index(): Response { return $this->render('intern/index.html.twig', [ - 'interns' => $internRepository->findAll(), + 'interns' => $this->internRepository->findAll(), ]); } @@ -37,13 +51,13 @@ final class InternController extends AbstractController } #[Route('/{id}/edit', name: 'app_intern_edit', methods: ['GET', 'POST'])] - public function edit(Request $request, Intern $intern, EntityManagerInterface $entityManager): Response + public function edit(Request $request, Intern $intern,): Response { $form = $this->createForm(InternType::class, $intern); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_intern_index', [], Response::HTTP_SEE_OTHER); } @@ -55,18 +69,18 @@ final class InternController extends AbstractController } #[Route('/{id}', name: 'app_intern_delete', methods: ['POST'])] - public function delete(Request $request, Intern $intern, EntityManagerInterface $entityManager): Response + public function delete(Request $request, Intern $intern,): Response { if ($this->isCsrfTokenValid('delete'.$intern->getId(), $request->getPayload()->getString('_token'))) { - $entityManager->remove($intern); - $entityManager->flush(); + $this->entityManager->remove($intern); + $this->entityManager->flush(); } return $this->redirectToRoute('app_intern_index', [], Response::HTTP_SEE_OTHER); } #[Route('/degrees/add', name:'app_intern_add_degrees', methods:['POST'])] - public function addDegrees(Request $request, EntityManagerInterface $entityManager): Response + public function addDegrees(Request $request): Response { $intern = $this->getUser(); @@ -81,8 +95,8 @@ final class InternController extends AbstractController return $this->redirectToRoute('app_degree_index'); } - $degreeRepository = $entityManager->getRepository(Degree::class); - $internDegreeRepository = $entityManager->getRepository(InternDegree::class); + $degreeRepository = $this->entityManager->getRepository(Degree::class); + $internDegreeRepository = $this->entityManager->getRepository(InternDegree::class); foreach ($selectedDegreeIds as $degreeId) { $degree = $degreeRepository->find($degreeId); @@ -102,11 +116,11 @@ final class InternController extends AbstractController $internDegree->setDegree($degree); $internDegree->setGraduationDate(new \DateTime()); - $entityManager->persist($internDegree); + $this->entityManager->persist($internDegree); } } - $entityManager->flush(); + $this->entityManager->flush(); $this->addFlash('success', 'Les diplômes ont été ajoutés avec succès.'); @@ -114,15 +128,15 @@ final class InternController extends AbstractController } #[Route('/application/send', name:'app_intern_send_application', methods:['POST'])] - public function sendApplication(Request $request, EntityManagerInterface $entityManager): Response + public function sendApplication(Request $request,): Response { $intern = $this->getUser(); if (!$intern instanceof Intern) { throw $this->createAccessDeniedException("Seuls les stagiaires peuvent envoyer des candidatures."); } - $announcementRepository = $entityManager->getRepository(Announcement::class); - $internApplicationRepository = $entityManager->getRepository(InternApplication::class); + $announcementRepository = $this->entityManager->getRepository(Announcement::class); + $internApplicationRepository = $this->entityManager->getRepository(InternApplication::class); $announcementId = $request->request->get('announcement_id'); $announcement = $announcementRepository->find($announcementId); @@ -139,9 +153,9 @@ final class InternController extends AbstractController $internApplication->setApplicationDate(new \DateTime()); $internApplication->setStatus("En Attente"); - $entityManager->persist($internApplication); + $this->entityManager->persist($internApplication); } - $entityManager->flush(); + $this->entityManager->flush(); $this->addFlash('success', 'La candidature à bien été envoyée.'); @@ -150,7 +164,7 @@ final class InternController extends AbstractController } #[Route('/skills/add', name:'app_intern_add_skills', methods:['POST'])] - public function addSkills(Request $request, EntityManagerInterface $entityManager): Response + public function addSkills(Request $request,): Response { $intern = $this->getUser(); @@ -165,8 +179,8 @@ final class InternController extends AbstractController return $this->redirectToRoute('app_skill_index'); } - $skillRepository = $entityManager->getRepository(Skill::class); - $internSkillRepository = $entityManager->getRepository(InternSkill::class); + $skillRepository = $this->entityManager->getRepository(Skill::class); + $internSkillRepository = $this->entityManager->getRepository(InternSkill::class); foreach ($selectedSkillIds as $skillId) { $skill = $skillRepository->find($skillId); @@ -183,11 +197,11 @@ final class InternController extends AbstractController $internSkill->setIntern($intern); $internSkill->setSkill($skill); - $entityManager->persist($internSkill); + $this->entityManager->persist($internSkill); } } - $entityManager->flush(); + $this->entityManager->flush(); $this->addFlash('success', 'Les compétences ont été ajoutées avec succès.'); diff --git a/src/Controller/InternFavoriteController.php b/src/Controller/InternFavoriteController.php index 1a04b22..af73c85 100644 --- a/src/Controller/InternFavoriteController.php +++ b/src/Controller/InternFavoriteController.php @@ -5,7 +5,9 @@ namespace App\Controller; use App\Entity\Announcement; use App\Entity\Intern; use App\Entity\InternFavorite; +use App\Repository\AnnouncementRepository; use App\Repository\InternFavoriteRepository; +use App\Repository\InternRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\SecurityBundle\Security; @@ -17,6 +19,12 @@ use Symfony\Component\HttpFoundation\Response; class InternFavoriteController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly AnnouncementRepository $announcementRepository, + private readonly InternRepository $internRepository, + private readonly InternFavoriteRepository $internFavoriteRepository, + ){} #[Route('/favorite/toggle/{id}', name: 'toggle_favorite')] public function toggleFavorite( Announcement $announcement, @@ -45,7 +53,7 @@ class InternFavoriteController extends AbstractController } #[Route('/announcement/{id}/favorite/toggle', name: 'app_favorite_toggle', methods: ['POST'])] - public function toggle(Announcement $announcement, EntityManagerInterface $em, Security $security): RedirectResponse + public function toggle(Announcement $announcement,Security $security): RedirectResponse { $user = $security->getUser(); @@ -53,33 +61,33 @@ class InternFavoriteController extends AbstractController throw new AccessDeniedHttpException('Seuls les stagiaires peuvent ajouter aux favoris.'); } - $favorite = $em->getRepository(InternFavorite::class)->findOneBy([ + $favorite = $this->entityManager->getRepository(InternFavorite::class)->findOneBy([ 'intern' => $user, 'announcement' => $announcement ]); if ($favorite) { - $em->remove($favorite); + $this->entityManager->remove($favorite); } else { $favorite = new InternFavorite(); $favorite->setIntern($user); $favorite->setAnnouncement($announcement); - $em->persist($favorite); + $this->entityManager->persist($favorite); } - $em->flush(); + $this->entityManager->flush(); return new RedirectResponse($_SERVER['HTTP_REFERER'] ?? '/'); } #[Route('/announcement/{id}', name: 'app_announcement_show')] - public function show(Announcement $announcement, InternFavoriteRepository $internFavoriteRepository): Response + public function show(Announcement $announcement,): Response { $user = $this->getUser(); $isFavorite = false; if (in_array('ROLE_INTERN', $user->getRoles())) { - $favorite = $internFavoriteRepository->findOneBy([ + $favorite = $this->internFavoriteRepository->findOneBy([ 'announcement' => $announcement, 'intern' => $user, ]); @@ -94,12 +102,12 @@ class InternFavoriteController extends AbstractController } #[Route('/favorite/add/{id}', name: 'app_favorite_add')] - public function addFavorite(Announcement $announcement, EntityManagerInterface $entityManager): Response + public function addFavorite(Announcement $announcement,): Response { $user = $this->getUser(); // Vérifier si l'intern a déjà ce favori - $existingFavorite = $entityManager->getRepository(InternFavorite::class)->findOneBy([ + $existingFavorite = $this->entityManager->getRepository(InternFavorite::class)->findOneBy([ 'announcement' => $announcement, 'intern' => $user, ]); @@ -109,26 +117,26 @@ class InternFavoriteController extends AbstractController $favorite->setAnnouncement($announcement); $favorite->setIntern($user); - $entityManager->persist($favorite); - $entityManager->flush(); + $this->entityManager->persist($favorite); + $this->entityManager->flush(); } return $this->redirectToRoute('app_announcement_show', ['id' => $announcement->getId()]); } #[Route('/favorite/remove/{id}', name: 'app_favorite_remove')] - public function removeFavorite(Announcement $announcement, EntityManagerInterface $entityManager): Response + public function removeFavorite(Announcement $announcement,): Response { $user = $this->getUser(); - $favorite = $entityManager->getRepository(InternFavorite::class)->findOneBy([ + $favorite = $this->entityManager->getRepository(InternFavorite::class)->findOneBy([ 'announcement' => $announcement, 'intern' => $user, ]); if ($favorite) { - $entityManager->remove($favorite); - $entityManager->flush(); + $this->entityManager->remove($favorite); + $this->entityManager->flush(); } return $this->redirectToRoute('app_announcement_show', ['id' => $announcement->getId()]); diff --git a/src/Controller/MessageController.php b/src/Controller/MessageController.php index cca62c2..7837b1a 100644 --- a/src/Controller/MessageController.php +++ b/src/Controller/MessageController.php @@ -5,6 +5,8 @@ namespace App\Controller; use App\Entity\Message; use App\Entity\UserApp; use App\Form\MessageType; +use App\Repository\AnnouncementRepository; +use App\Repository\InternSkillRepository; use App\Repository\MessageRepository; use App\Repository\UserRepository; use Doctrine\ORM\EntityManagerInterface; @@ -16,11 +18,19 @@ use Symfony\Component\Routing\Attribute\Route; #[Route('/message')] final class MessageController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly AnnouncementRepository $announcementRepository, + private readonly MessageRepository $messageRepository, + private readonly UserRepository $repository, + private readonly InternSkillRepository $skillRepository, + private readonly UserRepository $userRepository, + ){} #[Route(name: 'app_message_index', methods: ['GET'])] - public function index(MessageRepository $messageRepository): Response + public function index(): Response { $user = $this->getUser(); - $messages = $messageRepository->findLatestMessagesByUser($user); + $messages = $this->messageRepository->findLatestMessagesByUser($user); return $this->render('message/index.html.twig', [ 'messages' => $messages, @@ -28,12 +38,12 @@ final class MessageController extends AbstractController } #[Route('/conversation/{id}', name: 'app_message_conversation', methods: ['GET'])] - public function conversation(Message $message, MessageRepository $messageRepository): Response + public function conversation(Message $message,): Response { $user = $this->getUser(); $otherUser = $message->getSender() === $user ? $message->getReceiver() : $message->getSender(); - $conversation = $messageRepository->findByConversation($user, $otherUser); + $conversation = $this->messageRepository->findByConversation($user, $otherUser); return $this->render('message/conversation.html.twig', [ 'conversation' => $conversation, @@ -44,12 +54,12 @@ final class MessageController extends AbstractController #[Route('/new/{receiverId}', name: 'app_message_new', methods: ['GET', 'POST'])] - public function new(Request $request, EntityManagerInterface $entityManager, ?int $receiverId = null, UserRepository $userRepository): Response + public function new(Request $request, ?int $receiverId = null,): Response { $message = new Message(); if ($receiverId) { - $receiver = $userRepository->find($receiverId); + $receiver = $this->userRepository->find($receiverId); if ($receiver) { $message->setReceiver($receiver); } @@ -62,8 +72,8 @@ final class MessageController extends AbstractController $message->setSendingDate(new \DateTime()); $message->setSender($this->getUser()); - $entityManager->persist($message); - $entityManager->flush(); + $this->entityManager->persist($message); + $this->entityManager->flush(); return $this->redirectToRoute('app_message_index'); } @@ -82,14 +92,14 @@ final class MessageController extends AbstractController } #[Route('/{id}/edit', name: 'app_message_edit', methods: ['GET', 'POST'])] - public function edit(Request $request, Message $message, EntityManagerInterface $entityManager): Response + public function edit(Request $request, Message $message,): Response { $form = $this->createForm(MessageType::class, $message); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $message->setSendingDate(new \DateTime()); - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_message_index', [], Response::HTTP_SEE_OTHER); } @@ -101,11 +111,11 @@ final class MessageController extends AbstractController } #[Route('/{id}', name: 'app_message_delete', methods: ['POST'])] - public function delete(Request $request, Message $message, EntityManagerInterface $entityManager): Response + public function delete(Request $request, Message $message,): Response { if ($this->isCsrfTokenValid('delete'.$message->getId(), $request->getPayload()->getString('_token'))) { - $entityManager->remove($message); - $entityManager->flush(); + $this->entityManager->remove($message); + $this->entityManager->flush(); } return $this->redirectToRoute('app_message_index', [], Response::HTTP_SEE_OTHER); diff --git a/src/Controller/ProfileController.php b/src/Controller/ProfileController.php index 8263c94..efc9f80 100644 --- a/src/Controller/ProfileController.php +++ b/src/Controller/ProfileController.php @@ -7,6 +7,7 @@ use App\Entity\Intern; use App\Entity\InternApplication; use App\Entity\UserApp; use App\Form\UserAppType; +use App\Repository\InternApplicationRepository; use App\Repository\SkillRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; @@ -16,8 +17,12 @@ use Symfony\Component\Routing\Attribute\Route; class ProfileController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly InternApplicationRepository $internApplicationRepository, + ){} #[Route('/profile', name: 'app_profile')] - public function profile(EntityManagerInterface $entityManager): Response + public function profile(): Response { $user = $this->getUser(); @@ -27,9 +32,8 @@ class ProfileController extends AbstractController if ($user instanceof Intern) { - $internApplicationRepository = $entityManager->getRepository(InternApplication::class); - $internApplications = $internApplicationRepository->findBy([ + $internApplications = $this->internApplicationRepository->findBy([ 'intern' => $user, ]); @@ -46,13 +50,13 @@ class ProfileController extends AbstractController } #[Route('profile/{id}/edit', name: 'app_profile_edit', methods: ['GET', 'POST'])] - public function edit(Request $request, UserApp $userApp, EntityManagerInterface $entityManager): Response + public function edit(Request $request, UserApp $userApp,): Response { $form = $this->createForm(UserAppType::class, $userApp); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_profile', [], Response::HTTP_SEE_OTHER); } @@ -64,9 +68,9 @@ class ProfileController extends AbstractController } #[Route('/profile/{id}/visit', name: 'app_profile_visit')] - public function visitProfile(EntityManagerInterface $entityManager, int $id): Response + public function visitProfile( int $id): Response { - $user = $entityManager->getRepository(Intern::class)->find($id); + $user = $this->entityManager->getRepository(Intern::class)->find($id); if (!$user) { throw $this->createNotFoundException('Utilisateur non trouvé.'); diff --git a/src/Controller/RegistrationController.php b/src/Controller/RegistrationController.php index ebc0fcd..d4f5141 100644 --- a/src/Controller/RegistrationController.php +++ b/src/Controller/RegistrationController.php @@ -6,19 +6,25 @@ use App\Entity\Employee; use App\Entity\Intern; use App\Entity\UserApp; use App\Form\RegistrationFormType; +use App\Repository\InternApplicationRepository; use Doctrine\ORM\EntityManagerInterface; +use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; use Symfony\Component\Routing\Attribute\Route; +use App\Entity\Company; #[Route('/register', name: 'app_register')] class RegistrationController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + ){} #[Route('/', name: '_intern')] - public function register(Request $request, UserPasswordHasherInterface $userPasswordHasher, Security $security, EntityManagerInterface $entityManager): Response + public function register(Request $request, UserPasswordHasherInterface $userPasswordHasher, Security $security): Response { $user = new Intern(); $form = $this->createForm(RegistrationFormType::class, $user); @@ -32,44 +38,52 @@ class RegistrationController extends AbstractController // encode the plain password $user->setPassword($userPasswordHasher->hashPassword($user, $plainPassword)); - $entityManager->persist($user); - $entityManager->flush(); - - // do anything else you need here, like send an email + $this->entityManager->persist($user); + $this->entityManager->flush(); return $security->login($user, 'form_login', 'main'); } return $this->render('registration/register.html.twig', [ 'registrationForm' => $form, + 'employee' => False, ]); } #[Route('/employee', name: '_employee')] - public function registerEmployee(Request $request, UserPasswordHasherInterface $userPasswordHasher, Security $security, EntityManagerInterface $entityManager): Response + public function registerEmployee(Request $request, UserPasswordHasherInterface $userPasswordHasher, Security $security): Response { $user = new Employee(); - $form = $this->createForm(RegistrationFormType::class, $user); + $form = $this->createForm(RegistrationFormType::class, $user) + ->add('company', EntityType::class, [ + 'class' => Company::class, + 'choice_label' => 'name', + 'placeholder' => 'Sélectionnez une entreprise', + 'label' => 'Entreprise', + ]); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { /** @var string $plainPassword */ $plainPassword = $form->get('plainPassword')->getData(); + $company = $form->get('company')->getData(); + $user->setCompany($company); + $user->setRoles(['ROLE_EMPLOYEE']); - // encode the plain password + // Encoder le mot de passe $user->setPassword($userPasswordHasher->hashPassword($user, $plainPassword)); - $entityManager->persist($user); - $entityManager->flush(); - - // do anything else you need here, like send an email + $this->entityManager->persist($user); + $this->entityManager->flush(); return $security->login($user, 'form_login', 'main'); } return $this->render('registration/register.html.twig', [ 'registrationForm' => $form, + 'employee' => True, ]); } + } diff --git a/src/Controller/SecurityController.php b/src/Controller/SecurityController.php index 76bf5c4..ac0642b 100644 --- a/src/Controller/SecurityController.php +++ b/src/Controller/SecurityController.php @@ -2,7 +2,9 @@ namespace App\Controller; +use App\Repository\InternApplicationRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; diff --git a/src/Controller/SkillController.php b/src/Controller/SkillController.php index 914e64c..2a8bf9b 100644 --- a/src/Controller/SkillController.php +++ b/src/Controller/SkillController.php @@ -4,6 +4,8 @@ namespace App\Controller; use App\Entity\Skill; use App\Form\SkillType; +use App\Repository\AnnouncementRepository; +use App\Repository\InternApplicationRepository; use App\Repository\SkillRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; @@ -15,25 +17,30 @@ use Symfony\Component\Security\Http\Attribute\IsGranted; #[Route('/skill')] final class SkillController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly InternApplicationRepository $internApplicationRepository, + private readonly AnnouncementRepository $skillRepository, + ){} #[Route(name: 'app_skill_index', methods: ['GET'])] - public function index(SkillRepository $skillRepository): Response + public function index(): Response { return $this->render('skill/index.html.twig', [ - 'skills' => $skillRepository->findAll(), + 'skills' => $this->skillRepository->findAll(), ]); } #[Route('/new', name: 'app_skill_new', methods: ['GET', 'POST'])] #[IsGranted('ROLE_ADMIN')] - public function new(Request $request, EntityManagerInterface $entityManager): Response + public function new(Request $request,): Response { $skill = new Skill(); $form = $this->createForm(SkillType::class, $skill); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->persist($skill); - $entityManager->flush(); + $this->entityManager->persist($skill); + $this->entityManager->flush(); return $this->redirectToRoute('app_skill_index', [], Response::HTTP_SEE_OTHER); } @@ -54,13 +61,13 @@ final class SkillController extends AbstractController #[Route('/{id}/edit', name: 'app_skill_edit', methods: ['GET', 'POST'])] #[IsGranted('ROLE_ADMIN')] - public function edit(Request $request, Skill $skill, EntityManagerInterface $entityManager): Response + public function edit(Request $request, Skill $skill,): Response { $form = $this->createForm(SkillType::class, $skill); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_skill_index', [], Response::HTTP_SEE_OTHER); } @@ -73,11 +80,11 @@ final class SkillController extends AbstractController #[Route('/{id}', name: 'app_skill_delete', methods: ['POST'])] #[IsGranted('ROLE_ADMIN')] - public function delete(Request $request, Skill $skill, EntityManagerInterface $entityManager): Response + public function delete(Request $request, Skill $skill,): Response { if ($this->isCsrfTokenValid('delete'.$skill->getId(), $request->getPayload()->getString('_token'))) { - $entityManager->remove($skill); - $entityManager->flush(); + $this->entityManager->remove($skill); + $this->entityManager->flush(); } return $this->redirectToRoute('app_skill_index', [], Response::HTTP_SEE_OTHER); diff --git a/src/Controller/UserAppController.php b/src/Controller/UserAppController.php index ad55bd2..eb4cb9a 100644 --- a/src/Controller/UserAppController.php +++ b/src/Controller/UserAppController.php @@ -4,6 +4,7 @@ namespace App\Controller; use App\Entity\UserApp; use App\Form\UserAppType; +use App\Repository\AnnouncementRepository; use App\Repository\UserRepository; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; @@ -14,11 +15,16 @@ use Symfony\Component\Routing\Attribute\Route; #[Route('/user')] final class UserAppController extends AbstractController { + public function __construct( + private readonly EntityManagerInterface $entityManager, + private readonly AnnouncementRepository $announcementRepository, + private readonly UserRepository $userRepository, + ){} #[Route(name: 'app_user_index', methods: ['GET'])] - public function index(UserRepository $userRepository): Response + public function index(): Response { return $this->render('user_app/index.html.twig', [ - 'user_apps' => $userRepository->findAll(), + 'user_apps' => $this->userRepository->findAll(), ]); } @@ -31,13 +37,13 @@ final class UserAppController extends AbstractController } #[Route('/{id}/edit', name: 'app_user_edit', methods: ['GET', 'POST'])] - public function edit(Request $request, UserApp $userApp, EntityManagerInterface $entityManager): Response + public function edit(Request $request, UserApp $userApp,): Response { $form = $this->createForm(UserAppType::class, $userApp); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - $entityManager->flush(); + $this->entityManager->flush(); return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER); } @@ -49,11 +55,11 @@ final class UserAppController extends AbstractController } #[Route('/{id}', name: 'app_user_delete', methods: ['POST'])] - public function delete(Request $request, UserApp $userApp, EntityManagerInterface $entityManager): Response + public function delete(Request $request, UserApp $userApp,): Response { if ($this->isCsrfTokenValid('delete'.$userApp->getId(), $request->getPayload()->getString('_token'))) { - $entityManager->remove($userApp); - $entityManager->flush(); + $this->entityManager->remove($userApp); + $this->entityManager->flush(); } return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER); diff --git a/src/Entity/Annonce.php b/src/Entity/Annonce.php deleted file mode 100644 index dc600bb..0000000 --- a/src/Entity/Annonce.php +++ /dev/null @@ -1,57 +0,0 @@ -id; - } - - public function setId(int $id): static - { - $this->id = $id; - - return $this; - } - - public function getTitre(): ?string - { - return $this->Titre; - } - - public function setTitre(string $Titre): static - { - $this->Titre = $Titre; - - return $this; - } - - public function getDescription(): ?string - { - return $this->Description; - } - - public function setDescription(string $Description): static - { - $this->Description = $Description; - - return $this; - } -} diff --git a/src/Entity/Company.php b/src/Entity/Company.php index ae8ccaa..1451791 100644 --- a/src/Entity/Company.php +++ b/src/Entity/Company.php @@ -7,6 +7,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; + #[ORM\Entity(repositoryClass: CompanyRepository::class)] class Company { diff --git a/src/Entity/Competence.php b/src/Entity/Competence.php deleted file mode 100644 index ee8394b..0000000 --- a/src/Entity/Competence.php +++ /dev/null @@ -1,42 +0,0 @@ -id; - } - - public function setId(int $id): static - { - $this->id = $id; - - return $this; - } - - public function getLibelle(): ?string - { - return $this->Libelle; - } - - public function setLibelle(string $Libelle): static - { - $this->Libelle = $Libelle; - - return $this; - } -} diff --git a/src/Entity/Demandeur.php b/src/Entity/Demandeur.php deleted file mode 100644 index fae439e..0000000 --- a/src/Entity/Demandeur.php +++ /dev/null @@ -1,65 +0,0 @@ -id; - } - - public function getLM(): ?string - { - return $this->LM; - } - - public function setLM(string $LM): static - { - $this->LM = $LM; - - return $this; - } - - public function getCV(): ?string - { - return $this->CV; - } - - public function setCV(string $CV): static - { - $this->CV = $CV; - - return $this; - } - - public function getMail(): ?string - { - return $this->Mail; - } - - public function setMail(string $Mail): static - { - $this->Mail = $Mail; - - return $this; - } -} diff --git a/src/Entity/Diplome.php b/src/Entity/Diplome.php deleted file mode 100644 index 5ca827e..0000000 --- a/src/Entity/Diplome.php +++ /dev/null @@ -1,42 +0,0 @@ -id; - } - - public function setId(int $id): static - { - $this->id = $id; - - return $this; - } - - public function getLibelle(): ?string - { - return $this->Libelle; - } - - public function setLibelle(string $Libelle): static - { - $this->Libelle = $Libelle; - - return $this; - } -} diff --git a/src/Entity/Employe.php b/src/Entity/Employe.php deleted file mode 100644 index 1d4fa6c..0000000 --- a/src/Entity/Employe.php +++ /dev/null @@ -1,35 +0,0 @@ -id; - } - - public function getMail(): ?string - { - return $this->Mail; - } - - public function setMail(string $Mail): static - { - $this->Mail = $Mail; - - return $this; - } -} diff --git a/src/Entity/Entreprise.php b/src/Entity/Entreprise.php deleted file mode 100644 index 2807a19..0000000 --- a/src/Entity/Entreprise.php +++ /dev/null @@ -1,87 +0,0 @@ -id; - } - - public function setId(int $id): static - { - $this->id = $id; - - return $this; - } - - public function getNom(): ?string - { - return $this->Nom; - } - - public function setNom(string $Nom): static - { - $this->Nom = $Nom; - - return $this; - } - - public function getAdresse(): ?string - { - return $this->Adresse; - } - - public function setAdresse(string $Adresse): static - { - $this->Adresse = $Adresse; - - return $this; - } - - public function getTel(): ?string - { - return $this->Tel; - } - - public function setTel(string $Tel): static - { - $this->Tel = $Tel; - - return $this; - } - - public function getMail(): ?string - { - return $this->Mail; - } - - public function setMail(string $Mail): static - { - $this->Mail = $Mail; - - return $this; - } -} diff --git a/src/Entity/Formulaire.php b/src/Entity/Formulaire.php deleted file mode 100644 index 7a8308b..0000000 --- a/src/Entity/Formulaire.php +++ /dev/null @@ -1,36 +0,0 @@ -id; - } - - public function getDate(): ?\DateTimeInterface - { - return $this->Date; - } - - public function setDate(\DateTimeInterface $Date): static - { - $this->Date = $Date; - - return $this; - } -} diff --git a/src/Entity/Intern.php b/src/Entity/Intern.php index daaf428..ef9d347 100644 --- a/src/Entity/Intern.php +++ b/src/Entity/Intern.php @@ -7,6 +7,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; +use App\Entity\Company; #[ORM\Entity(repositoryClass: InternRepository::class)] class Intern extends UserApp @@ -191,6 +192,22 @@ class Intern extends UserApp } } + return $this; + } + #[ORM\ManyToOne(targetEntity: Company::class)] + #[ORM\JoinColumn(nullable: false)] + private ?Company $company = null; + + // Getter et setter pour la société + public function getCompany(): ?Company + { + return $this->company; + } + + public function setCompany(?Company $company): self + { + $this->company = $company; + return $this; } } diff --git a/src/Entity/Liste.php b/src/Entity/Liste.php deleted file mode 100644 index eccf868..0000000 --- a/src/Entity/Liste.php +++ /dev/null @@ -1,36 +0,0 @@ -id; - } - - public function getDate(): ?\DateTimeInterface - { - return $this->Date; - } - - public function setDate(\DateTimeInterface $Date): static - { - $this->Date = $Date; - - return $this; - } -} diff --git a/src/Entity/UserApp.php b/src/Entity/UserApp.php index 0ccf691..5404b51 100644 --- a/src/Entity/UserApp.php +++ b/src/Entity/UserApp.php @@ -7,6 +7,7 @@ use Doctrine\ORM\Mapping as ORM; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\UserInterface; +use App\Entity\Entreprise; #[ORM\Entity(repositoryClass: UserRepository::class)] #[ORM\Table(name: 'userApp')] @@ -186,6 +187,7 @@ class UserApp implements UserInterface, PasswordAuthenticatedUserInterface return $this; } + } diff --git a/src/Entity/Utilisateur.php b/src/Entity/Utilisateur.php deleted file mode 100644 index 705b358..0000000 --- a/src/Entity/Utilisateur.php +++ /dev/null @@ -1,135 +0,0 @@ -messages = new ArrayCollection(); - } - - public function getId(): ?int - { - return $this->id; - } - - public function setId(int $id): static - { - $this->id = $id; - - return $this; - } - - public function getNom(): ?string - { - return $this->Nom; - } - - public function setNom(string $Nom): static - { - $this->Nom = $Nom; - - return $this; - } - - public function getPrenom(): ?string - { - return $this->Prenom; - } - - public function setPrenom(string $Prenom): static - { - $this->Prenom = $Prenom; - - return $this; - } - - public function getTel(): ?string - { - return $this->Tel; - } - - public function setTel(string $Tel): static - { - $this->Tel = $Tel; - - return $this; - } - - public function getAdresse(): ?string - { - return $this->Adresse; - } - - public function setAdresse(string $Adresse): static - { - $this->Adresse = $Adresse; - - return $this; - } - - // Getter et setter pour la relation avec Message - /** - * @return Collection - */ - public function getMessages(): Collection - { - return $this->messages; - } - - public function addMessage(Message $message): static - { - if (!$this->messages->contains($message)) { - $this->messages[] = $message; - $message->setUtilisateur($this); - } - - return $this; - } - - public function removeMessage(Message $message): static - { - if ($this->messages->removeElement($message)) { - if ($message->getUtilisateur() === $this) { - $message->setUtilisateur(null); - } - } - - return $this; - } -} diff --git a/src/Entity/Verifie.php b/src/Entity/Verifie.php deleted file mode 100644 index fa39d14..0000000 --- a/src/Entity/Verifie.php +++ /dev/null @@ -1,42 +0,0 @@ -id; - } - - public function setId(int $id): static - { - $this->id = $id; - - return $this; - } - - public function getLibelle(): ?string - { - return $this->Libelle; - } - - public function setLibelle(string $Libelle): static - { - $this->Libelle = $Libelle; - - return $this; - } -} diff --git a/src/Form/RegistrationFormType.php b/src/Form/RegistrationFormType.php index 6aa8031..500a27e 100644 --- a/src/Form/RegistrationFormType.php +++ b/src/Form/RegistrationFormType.php @@ -15,12 +15,19 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\IsTrue; use Symfony\Component\Validator\Constraints\Length; use Symfony\Component\Validator\Constraints\NotBlank; +use App\Entity\Company; +use App\Entity\Intern; +use Symfony\Bridge\Doctrine\Form\Type\EntityType; +use Doctrine\ORM\EntityRepository; +use Symfony\Component\Form\Extension\Core\Type\SubmitType; + class RegistrationFormType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder + ->add('nickname', TextType::class, [ 'label' => 'Utilisateur : ', ]) @@ -45,10 +52,7 @@ class RegistrationFormType extends AbstractType new NotBlank(), ] ]) -// ->add('plainPassword', PasswordType::class, [ - // instead of being set onto the object directly, - // this is read and encoded in the controller 'mapped' => false, 'attr' => ['autocomplete' => 'new-password'], 'constraints' => [ @@ -58,12 +62,10 @@ class RegistrationFormType extends AbstractType new Length([ 'min' => 6, 'minMessage' => 'Votre mot de passe doit avoir au moins {{ limit }} caractères', - // max length allowed by Symfony for security reasons 'max' => 4096, ]), ], - ]) - ; + ]); } public function configureOptions(OptionsResolver $resolver): void diff --git a/src/Repository/AnnonceRepository.php b/src/Repository/AnnonceRepository.php deleted file mode 100644 index 776c143..0000000 --- a/src/Repository/AnnonceRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class AnnonceRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Annonce::class); - } - -// /** -// * @return Annonce[] Returns an array of Annonce objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('a') -// ->andWhere('a.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('a.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Annonce -// { -// return $this->createQueryBuilder('a') -// ->andWhere('a.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/CompetenceRepository.php b/src/Repository/CompetenceRepository.php deleted file mode 100644 index f4fbf89..0000000 --- a/src/Repository/CompetenceRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class CompetenceRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Competence::class); - } - -// /** -// * @return Competence[] Returns an array of Competence objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('c') -// ->andWhere('c.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('c.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Competence -// { -// return $this->createQueryBuilder('c') -// ->andWhere('c.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/DemandeurRepository.php b/src/Repository/DemandeurRepository.php deleted file mode 100644 index 6ef82d1..0000000 --- a/src/Repository/DemandeurRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class DemandeurRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Demandeur::class); - } - -// /** -// * @return Demandeur[] Returns an array of Demandeur objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('d') -// ->andWhere('d.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('d.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Demandeur -// { -// return $this->createQueryBuilder('d') -// ->andWhere('d.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/DiplomeRepository.php b/src/Repository/DiplomeRepository.php deleted file mode 100644 index 777400a..0000000 --- a/src/Repository/DiplomeRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class DiplomeRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Diplome::class); - } - -// /** -// * @return Diplome[] Returns an array of Diplome objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('d') -// ->andWhere('d.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('d.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Diplome -// { -// return $this->createQueryBuilder('d') -// ->andWhere('d.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/EmployeRepository.php b/src/Repository/EmployeRepository.php deleted file mode 100644 index 87ac38f..0000000 --- a/src/Repository/EmployeRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class EmployeRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Employe::class); - } - -// /** -// * @return Employe[] Returns an array of Employe objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('e') -// ->andWhere('e.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('e.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Employe -// { -// return $this->createQueryBuilder('e') -// ->andWhere('e.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/EntrepriseRepository.php b/src/Repository/EntrepriseRepository.php deleted file mode 100644 index 3d0e694..0000000 --- a/src/Repository/EntrepriseRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class EntrepriseRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Entreprise::class); - } - -// /** -// * @return Entreprise[] Returns an array of Entreprise objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('e') -// ->andWhere('e.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('e.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Entreprise -// { -// return $this->createQueryBuilder('e') -// ->andWhere('e.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/FormulaireRepository.php b/src/Repository/FormulaireRepository.php deleted file mode 100644 index f27aa6a..0000000 --- a/src/Repository/FormulaireRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class FormulaireRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Formulaire::class); - } - -// /** -// * @return Formulaire[] Returns an array of Formulaire objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('f') -// ->andWhere('f.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('f.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Formulaire -// { -// return $this->createQueryBuilder('f') -// ->andWhere('f.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/ListeRepository.php b/src/Repository/ListeRepository.php deleted file mode 100644 index 570b25f..0000000 --- a/src/Repository/ListeRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class ListeRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Liste::class); - } - -// /** -// * @return Liste[] Returns an array of Liste objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('l') -// ->andWhere('l.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('l.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Liste -// { -// return $this->createQueryBuilder('l') -// ->andWhere('l.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/UtilisateurRepository.php b/src/Repository/UtilisateurRepository.php deleted file mode 100644 index df1e4c6..0000000 --- a/src/Repository/UtilisateurRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class UtilisateurRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Utilisateur::class); - } - -// /** -// * @return Utilisateur[] Returns an array of Utilisateur objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('u') -// ->andWhere('u.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('u.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Utilisateur -// { -// return $this->createQueryBuilder('u') -// ->andWhere('u.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/src/Repository/VerifieRepository.php b/src/Repository/VerifieRepository.php deleted file mode 100644 index c5384d7..0000000 --- a/src/Repository/VerifieRepository.php +++ /dev/null @@ -1,43 +0,0 @@ - - */ -class VerifieRepository extends ServiceEntityRepository -{ - public function __construct(ManagerRegistry $registry) - { - parent::__construct($registry, Verifie::class); - } - -// /** -// * @return Verifie[] Returns an array of Verifie objects -// */ -// public function findByExampleField($value): array -// { -// return $this->createQueryBuilder('v') -// ->andWhere('v.exampleField = :val') -// ->setParameter('val', $value) -// ->orderBy('v.id', 'ASC') -// ->setMaxResults(10) -// ->getQuery() -// ->getResult() -// ; -// } - -// public function findOneBySomeField($value): ?Verifie -// { -// return $this->createQueryBuilder('v') -// ->andWhere('v.exampleField = :val') -// ->setParameter('val', $value) -// ->getQuery() -// ->getOneOrNullResult() -// ; -// } -} diff --git a/templates/registration/register.html.twig b/templates/registration/register.html.twig index edf72e9..10eaade 100644 --- a/templates/registration/register.html.twig +++ b/templates/registration/register.html.twig @@ -36,6 +36,15 @@ {{ form_errors(registrationForm.mail) }} + {% if employee %} +
+ {{ form_label(registrationForm.company, 'Sélectionnez une entreprise', {'label_attr': {'class': 'block text-gray-700 mb-2'}}) }} + {{ form_widget(registrationForm.company, {'attr': {'class': 'w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-teal-500'}}) }} + {{ form_errors(registrationForm.company) }} +
+ {% endif %} + +
{{ form_label(registrationForm.plainPassword, 'Mot de passe', {'label_attr': {'class': 'block text-gray-700 mb-2'}}) }} {{ form_widget(registrationForm.plainPassword, {'attr': {'class': 'w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-teal-500'}}) }}