src/EventListener/MenuBuilderListener.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Sonata\AdminBundle\Event\ConfigureMenuEvent;
  4. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  5. class MenuBuilderListener
  6. {
  7.     private $tokenStorage;
  8.     function __construct(TokenStorageInterface $tokenStorage) {
  9.         $this->tokenStorage $tokenStorage;
  10.     }
  11.     public function addMenuItems(ConfigureMenuEvent $event)
  12.     {
  13.         $user $this->tokenStorage->getToken()->getUser();
  14.         $roles $user->getRoles();
  15.         if (!$user->hasRole('ROLE_NGO')) {
  16.             $menu $event->getMenu();
  17.             $menu->addChild('reports', [
  18.                 'label' => '下載報告',
  19.                 'route' => 'app_reports_index',
  20.             ])->setExtras([
  21.                 'icon' => '<i class="fa fa-bar-chart"></i>',
  22.             ])->setLinkAttributes(array('target' => '_blank'));
  23.             $menu['裝置管理']->addChild('lowbattery', [
  24.                 'label' => '守護蹤低電量提示',
  25.                 'route' => 'admin_app_patientibeacon_list',
  26.                 'routeParameters' => ['filter[battery][type]' => 4'filter[battery][value]' => 2.4],
  27.             ])->setExtras([
  28.                 'icon' => '<i class="fa fa-angle-double-right"></i>',
  29.             ]);
  30.         }
  31.     }
  32. }