AuditMenuListener.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace AuditBundle\EventListener;
  3. use Base\AdminBundle\EventListener\SidebarMenuListener;
  4. use Sonata\AdminBundle\Event\ConfigureMenuEvent;
  5. use Symfony\Component\DependencyInjection\ContainerInterface;
  6. class AuditMenuListener extends SidebarMenuListener
  7. {
  8. /**
  9. * @var bool
  10. */
  11. private $audit_show_menu = false;
  12. /**
  13. * @var string
  14. */
  15. private $urlAudit;
  16. /**
  17. * @param ContainerInterface $serviceContainer
  18. */
  19. public function __construct(ContainerInterface $serviceContainer)
  20. {
  21. $ROLE_SUPER_ADMIN = $serviceContainer->get('security.authorization_checker')
  22. ->isGranted('ROLE_SUPER_ADMIN');
  23. if ($serviceContainer->hasParameter('audit_show_menu') && $ROLE_SUPER_ADMIN) {
  24. $this->audit_show_menu = $serviceContainer->getParameter('audit_show_menu');
  25. }
  26. $this->urlAudit = $serviceContainer->get('router')->generate('entity_audit');
  27. }
  28. /**
  29. * @param ConfigureMenuEvent $event
  30. */
  31. public function addMenuItems(ConfigureMenuEvent $event)
  32. {
  33. if ($this->audit_show_menu) {
  34. $menu = $event->getMenu();
  35. $uri = $this->urlAudit;
  36. $menu->addChild('Auditoría', compact('uri'))
  37. ->setExtra('translation_domain', 'AuditBundle');
  38. }
  39. }
  40. }