src/Component/AdminMenu/EventSubscriber/JobAlertMenuSubscriber.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Component\AdminMenu\EventSubscriber;
  3. use App\Component\AdminMenu\Event\AbstractBuildMenuEvent;
  4. use App\Component\AdminMenu\Event\BuildVacancyMenuEvent;
  5. use App\Component\UserRole\Permission\UserRolePermission;
  6. use App\Entity\JobAlert;
  7. use App\Entity\JobAlertAd;
  8. use App\EventListener\FeatureFlagListener;
  9. class JobAlertMenuSubscriber extends AbstractMenuBuildEventSubscriber
  10. {
  11.     protected static int $priority = -90;
  12.     protected static string $eventClass BuildVacancyMenuEvent::class;
  13.     public function buildMenu(AbstractBuildMenuEvent $event)
  14.     {
  15.         if (
  16.             !$this->hasAccess(['ROLE_ADMIN_USER', [UserRolePermission::MASK_VIEWJobAlert::class]])
  17.             || !$this->checkFeatures([FeatureFlagListener::FEATURE_JOBALERT])
  18.         ) {
  19.             return;
  20.         }
  21.         if ($this->checkFeatures([FeatureFlagListener::FEATURE_JOBALERT_ADS])) {
  22.             $menuBuilder $this->getMenuBuilder($event->getMenu(), 'Vacancies')
  23.                 ->addMainItem('Job alert''fal fa-bell')
  24.                 ->addOverlay()
  25.                 ->addSection('Job alert')
  26.                 ->addColumn('General''fal fa-bell')
  27.             ;
  28.         } else {
  29.             $this->getMenuBuilder($event->getMenu(), 'Vacancies')
  30.                 ->addMainItem('Job alert''fal fa-bell''admin_jobalerts')
  31.                 ->end();
  32.             return;
  33.         }
  34.         if (
  35.             $this->hasAccess(['ROLE_ADMIN_USER', [UserRolePermission::MASK_VIEWJobAlertAd::class]])
  36.             && $this->checkFeatures([FeatureFlagListener::FEATURE_JOBALERT_ADS])
  37.         ) {
  38.             $menuBuilder
  39.                 ->addItem('Job alerts''admin_jobalerts')
  40.                 ->addItem('Job alert ads''admin_jobalert_ads')
  41.                 ->addItem('Job alert targetaudience''admin_targetaudiences')
  42.                 ->end()
  43.             ;
  44.         }
  45.     }
  46. }