Guillermo Espinoza пре 8 година
родитељ
комит
248d5b54ba
2 измењених фајлова са 55 додато и 0 уклоњено
  1. 49 0
      EventListener/AuditMenuListener.php
  2. 6 0
      Resources/config/services.yml

+ 49 - 0
EventListener/AuditMenuListener.php

@@ -0,0 +1,49 @@
+<?php
+
+namespace AuditBundle\EventListener;
+
+use Base\AdminBundle\EventListener\SidebarMenuListener;
+use Sonata\AdminBundle\Event\ConfigureMenuEvent;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+class AuditMenuListener extends SidebarMenuListener
+{
+
+    /**
+     * @var bool
+     */
+    private $audit_show_menu = false;
+
+    /**
+     * @var string
+     */
+    private $urlAudit;
+
+    
+    /**
+     * @param ContainerInterface $serviceContainer
+     */
+    public function __construct(ContainerInterface $serviceContainer)
+    {
+        $ROLE_SUPER_ADMIN = $serviceContainer->get('security.authorization_checker')
+                ->isGranted('ROLE_SUPER_ADMIN');
+        if ($serviceContainer->hasParameter('audit_show_menu') && $ROLE_SUPER_ADMIN) {
+            $this->audit_show_menu = $serviceContainer->getParameter('audit_show_menu');
+        }
+        $this->urlAudit = $serviceContainer->get('router')->generate('entity_audit');
+    }
+
+    /**
+     * @param ConfigureMenuEvent $event
+     */
+    public function addMenuItems(ConfigureMenuEvent $event)
+    {
+        if ($this->audit_show_menu) {
+            $menu = $event->getMenu();
+            $uri = $this->urlAudit;
+            $menu->addChild('Auditoría de Entidades', compact('uri'))
+                    ->setExtra('translation_domain', 'AuditBundle');
+        }
+    }
+
+}

+ 6 - 0
Resources/config/services.yml

@@ -16,3 +16,9 @@ services:
             - '@audit.audit_data.service'
         tags:
             - { name: form.type }
+
+    audit.audit_menu.listener:
+        class: AuditBundle\EventListener\AuditMenuListener
+        tags:
+            - { name: kernel.event_listener, event: sonata.admin.event.configure.menu.sidebar, method: addMenuItems }
+        arguments: [ '@service_container' ]