src/EventListener/MenuBuilderListener.php line 24

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: grego
  5.  * Date: 18/10/2022
  6.  * Time: 16:23
  7.  */
  8. namespace App\EventListener;
  9. use Sonata\AdminBundle\Event\ConfigureMenuEvent;
  10. use Symfony\Component\Security\Core\Security;
  11. class MenuBuilderListener
  12. {
  13.     private $security;
  14.     public function __construct(Security $security)
  15.     {
  16.         $this->security $security;
  17.     }
  18.     public function addMenuItems(ConfigureMenuEvent $event)
  19.     {
  20.         $user $this->security->getUser();
  21.         $menu $event->getMenu();
  22.         if ($this->security->isGranted('ROLE_SUPER_ADMIN') || $this->security->isGranted('ROLE_SBM')) {
  23.             $menu->getChild('Users')->addChild('import_users', [
  24.                 'label' => 'Import Utilisateurs',
  25.                 'route' => 'client_admin_import_users',
  26.             ])->setExtras([
  27.                 'icon' => '<i class="fa fa-exchange"></i>',
  28.                 'routes' => [
  29.                     [
  30.                         'route' => 'client_admin_import_users',
  31.                     ]
  32.                 ]
  33.             ]);
  34.             $menu->getChild('Users')->addChild('delete_users', [
  35.                 'label' => 'Suppression Utilisateurs',
  36.                 'route' => 'client_admin_delete_users',
  37.             ])->setExtras([
  38.                 'icon' => '<i class="fa fa-trash"></i>',
  39.                 'routes' => [
  40.                     [
  41.                         'route' => 'client_admin_delete_users',
  42.                     ]
  43.                 ]
  44.             ]);
  45.             $menu->getChild('COSS')->addChild('validate_recipients', [
  46.                 'label' => 'Validation répondants',
  47.                 'route' => 'recipients_list_all_users',
  48.             ])->setExtras([
  49.                 'icon' => '<i class="fa fa-check"></i>',
  50.                 'routes' => [
  51.                     [
  52.                         'route' => 'recipients_list_all_users',
  53.                     ]
  54.                 ]
  55.             ]);
  56.             $menu->getChild('COSS')->addChild('list_users', [
  57.                 'label' => 'Admin client',
  58.                 'route' => 'client_admin_list_users',
  59.             ])->setExtras([
  60.                 'icon' => '<i class="fa fa-check"></i>',
  61.                 'routes' => [
  62.                     [
  63.                         'route' => 'client_admin_list_users',
  64.                     ]
  65.                 ]
  66.             ]);
  67.         }
  68.         $menu->removeChild('sonata_user');
  69.     }
  70. }