<?php
namespace Aviatur\AdminBundle\EventSubscriber;
use Sonata\AdminBundle\Event\ConfigureMenuEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Security;
class SonataMenuSubscriber implements EventSubscriberInterface
{
private Security $security;
public function __construct(
Security $security
)
{
$this->security = $security;
}
public static function getSubscribedEvents(): array
{
return [
ConfigureMenuEvent::SIDEBAR => 'onMenuConfigure',
];
}
public function onMenuConfigure(ConfigureMenuEvent $event): void
{
$menu = $event->getMenu();
if ($this->security->isGranted('ROLE_CUSTOMER_SERVICE') || $this->security->isGranted('ROLE_SUPERVISOR')) {
// Busca el grupo existente
$group = $menu->getChild('Azure Storage');
if (!$group) {
$group = $menu
->addChild('Azure Storage', [
'label' => 'Azure Storage',
])
->setExtra('icon', 'fas fa-folder');
}
// Agrega tu página dentro del grupo
$group->addChild('Consultar Logs', [
'route' => 'aviatur_admin_azure_log_list',
'labelAttributes' => ['icon' => 'fa fa-angle-double-right'],
]);
$group->setDisplay(true);
}
}
}