<?php
namespace App\EventListener;
use Sonata\AdminBundle\Event\ConfigureMenuEvent;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
class MenuBuilderListener
{
private $tokenStorage;
function __construct(TokenStorageInterface $tokenStorage) {
$this->tokenStorage = $tokenStorage;
}
public function addMenuItems(ConfigureMenuEvent $event)
{
$user = $this->tokenStorage->getToken()->getUser();
$roles = $user->getRoles();
if (!$user->hasRole('ROLE_NGO')) {
$menu = $event->getMenu();
$menu->addChild('reports', [
'label' => '下載報告',
'route' => 'app_reports_index',
])->setExtras([
'icon' => '<i class="fa fa-bar-chart"></i>',
])->setLinkAttributes(array('target' => '_blank'));
$menu['裝置管理']->addChild('lowbattery', [
'label' => '守護蹤低電量提示',
'route' => 'admin_app_patientibeacon_list',
'routeParameters' => ['filter[battery][type]' => 4, 'filter[battery][value]' => 2.4],
])->setExtras([
'icon' => '<i class="fa fa-angle-double-right"></i>',
]);
}
}
}