diff --git a/src/Controller/AnnouncementController.php b/src/Controller/AnnouncementController.php index 31c6513..3a5fde2 100644 --- a/src/Controller/AnnouncementController.php +++ b/src/Controller/AnnouncementController.php @@ -3,6 +3,7 @@ namespace App\Controller; use App\Entity\Announcement; +use App\Entity\Employee; use App\Form\AnnouncementType; use App\Repository\AnnouncementRepository; use App\Repository\InternApplicationRepository; @@ -76,17 +77,13 @@ final class AnnouncementController extends AbstractController #[Route('/new', name: 'app_announcement_new', methods: ['GET', 'POST'])] public function new(Request $request,): Response { - /*$user = $this->getUser(); + $user = $this->getUser(); - if (in_array('ROLE_EMPLOYEE', $user->getRoles())) { - $company = $user->getCompany(); - - if (!$company) - { - echo "Compétez votre profile avant de créer une annonce"; - $this->redirectToRoute('app_user_edit',['id' => $user->getId(),]); - } - }*/ + if (!$user instanceof Employee) { + $this->addFlash('error', "Vous n'etes pas autorisé à faire cette action."); + return $this->redirectToRoute('app_index'); + } + $company = $user->getCompany(); $announcement = new Announcement(); $form = $this->createForm(AnnouncementType::class, $announcement); @@ -95,6 +92,7 @@ final class AnnouncementController extends AbstractController if ($form->isSubmitted() && $form->isValid()) { $announcement->setCreationDate(new \DateTime()); $announcement->setStatus('notVerified'); + $announcement->setCompany($company); $this->entityManager->persist($announcement); $this->entityManager->flush(); @@ -104,6 +102,7 @@ final class AnnouncementController extends AbstractController return $this->render('announcement/new.html.twig', [ 'announcement' => $announcement, 'form' => $form, + 'company' => $company, ]); } diff --git a/src/Controller/InternFavoriteController.php b/src/Controller/InternFavoriteController.php index c4d95f1..2b9c740 100644 --- a/src/Controller/InternFavoriteController.php +++ b/src/Controller/InternFavoriteController.php @@ -99,8 +99,10 @@ class InternFavoriteController extends AbstractController public function addFavorite(Announcement $announcement,): Response { $user = $this->getUser(); + if (!$user instanceof Intern) { + throw new AccessDeniedHttpException('Seuls les stagiaires peuvent ajouter aux favoris.'); + } - // Vérifier si l'intern a déjà ce favori $existingFavorite = $this->entityManager->getRepository(InternFavorite::class)->findOneBy([ 'announcement' => $announcement, 'intern' => $user, diff --git a/src/Form/AnnouncementType.php b/src/Form/AnnouncementType.php index c6c87ed..6f021f2 100644 --- a/src/Form/AnnouncementType.php +++ b/src/Form/AnnouncementType.php @@ -4,7 +4,6 @@ namespace App\Form; use App\Entity\Announcement; use App\Entity\Company; -use App\Entity\Status; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; @@ -18,10 +17,6 @@ class AnnouncementType extends AbstractType $builder ->add('title') ->add('description') - ->add('company', EntityType::class, [ - 'class' => Company::class, - 'choice_label' => 'name', - ]) ->add('date', TextType::class, [ 'label' => 'Date de stage', 'required' => true, diff --git a/templates/announcement/index.html.twig b/templates/announcement/index.html.twig index debc235..41e9939 100644 --- a/templates/announcement/index.html.twig +++ b/templates/announcement/index.html.twig @@ -43,15 +43,17 @@ Validée {% endif %} -
+ {% if 'ROLE_INTERN' in app.user.roles %} + + {% endif %}