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 %}

{{ announcement.title }}

diff --git a/templates/announcement/new.html.twig b/templates/announcement/new.html.twig index c6d4b5c..09e679f 100644 --- a/templates/announcement/new.html.twig +++ b/templates/announcement/new.html.twig @@ -4,7 +4,7 @@ {% block body %}
-

Créer une Annonce

+

Créer une Annonce pour {{ company.name }}

{{ form_start(form) }}
@@ -19,10 +19,6 @@ {{ form_label(form.date) }} {{ form_widget(form.date, {'attr': {'class': 'form-input w-full p-2 rounded border'}}) }}
-
- {{ form_label(form.company) }} - {{ form_widget(form.company, {'attr': {'class': 'form-input w-full p-2 rounded border'}}) }} -
diff --git a/templates/announcement/show.html.twig b/templates/announcement/show.html.twig index b4dff6a..112e78e 100644 --- a/templates/announcement/show.html.twig +++ b/templates/announcement/show.html.twig @@ -59,6 +59,16 @@ Candidater à cette offre + +
+ +
{% endif %} {% if 'ROLE_ADMIN' in app.user.roles %} @@ -78,18 +88,7 @@ {% endif %}
- {% endif %} - -
- -