src/Social/AdminBundle/EventListener/MenuBuilderListener.php line 53

Open in your IDE?
  1. <?php
  2. // src/AppBundle/EventListener/MenuBuilderListener.php
  3. namespace Social\AdminBundle\EventListener;
  4. use Social\UserBundle\Entity\User;
  5. use Sonata\AdminBundle\Event\ConfigureMenuEvent;
  6. use Symfony\Component\Security\Core\User\UserInterface;
  7. use Symfony\Component\DependencyInjection\ContainerInterface;
  8. use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;
  9. use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
  10. /**
  11.  * Class MenuBuilderListener
  12.  *
  13.  * @package Social\AdminBundle\EventListener
  14.  */
  15. class MenuBuilderListener
  16. {
  17.     /**
  18.      * @var ContainerInterface
  19.      */
  20.     private $container;
  21.     /**
  22.      * @var AuthorizationChecker
  23.      */
  24.     private $authorizationChecker;
  25.     private $creditsMode;
  26.     /**
  27.      * MenuBuilderListener constructor.
  28.      *
  29.      * @param ContainerInterface   $container
  30.      * @param AuthorizationChecker $authorizationChecker
  31.      */
  32.     public function __construct(
  33.         ContainerInterface $container,
  34.         AuthorizationChecker $authorizationChecker,
  35.         $creditsMode false
  36.     ) {
  37.         $this->container            $container;
  38.         $this->authorizationChecker $authorizationChecker;
  39.         $this->creditsMode          $creditsMode;
  40.     }
  41.     /**
  42.      * @param ConfigureMenuEvent $event
  43.      *
  44.      * @throws \Exception
  45.      */
  46.     public function addMenuItems(ConfigureMenuEvent $event)
  47.     {
  48.         /** @var UserInterface $user */
  49.         $user $this->container->get('security.token_storage')->getToken()->getUser();
  50.         /** @var AuthorizationCheckerInterface $securityContext */
  51.         $securityContext $this->container->get('security.authorization_checker');
  52.         $menu $event->getMenu();
  53.         if($securityContext->isGranted(User::ROLE_ADMIN) ||
  54.         $securityContext->isGranted(User::ROLE_SUPER_ADMIN) ||
  55.         $securityContext->isGranted(User::ROLE_SUBADMIN)) {
  56.             $menu->getChild('new.dashboard')
  57.                 ->addChild('Admin Dashboard', ['route' => 'social_admin_dashboard']);
  58.             $menu->getChild('normal.user.management')
  59.                  ->addChild('Uninvited members', ['route' => 'social_admin_uninvited_users']);
  60.         }
  61.         if ($securityContext->isGranted(User::ROLE_FSTAFF) ||
  62.             $securityContext->isGranted(User::ROLE_ADMIN) ||
  63.             $securityContext->isGranted(User::ROLE_SUPER_ADMIN)
  64.         ) {
  65.             $menu
  66.                 ->addChild('Staff Members', [])
  67.                 ->setExtra('icon''<i class="fa fa-users"></i>')
  68.                 ->addChild(
  69.                     'Alerts',
  70.                     [
  71.                         'route' => 'social_admin_alerts',
  72.                     ]
  73.                 )
  74.                 ->getParent()
  75.                 ->addChild(
  76.                     'Members - Registered',
  77.                     [
  78.                         'route' => 'social_admin_members_by_staff_registered',
  79.                     ]
  80.                 )
  81.                 ->getParent()
  82.                 ->addChild(
  83.                     'Members - Unregistered',
  84.                     [
  85.                         'route' => 'social_admin_members_by_staff_unregistered',
  86.                     ]
  87.                 )
  88.                 ->getParent()
  89.                 ->getParent();
  90.             $menu
  91.                 ->getChild('normal.user.management')
  92.                 ->addChild(
  93.                     'Boost Fake Profile',
  94.                     [
  95.                         'route' => 'social_admin_boost_fake_profiles_list',
  96.                     ]
  97.                 )
  98.                 ->getParent();
  99.         }
  100.         if ($securityContext->isGranted(User::ROLE_ADMIN) ||
  101.             $securityContext->isGranted(User::ROLE_SUPER_ADMIN) ||
  102.             $securityContext->isGranted(User::ROLE_SUBADMIN)
  103.         ) {
  104.             $menu
  105.                 ->getChild('normal.user.management')
  106.                 ->addChild(
  107.                     'Member Images',
  108.                     [
  109.                         'route' => 'social_admin_member_images',
  110.                     ]
  111.                 )
  112.                 ->getParent()
  113.                 ->getParent();
  114.         }
  115.         if ($securityContext->isGranted(User::ROLE_FSTAFF) ||
  116.             $securityContext->isGranted(User::ROLE_ADMIN) ||
  117.             $securityContext->isGranted(User::ROLE_SUPER_ADMIN) ||
  118.             $securityContext->isGranted(User::ROLE_SUBADMIN)
  119.         ) {
  120.             $menu
  121.                 ->addChild('User Status', [])
  122.                 ->setExtra('icon''<i class="fa fa-eye"></i>')
  123.                 ->addChild(
  124.                     'Fake Users',
  125.                     [
  126.                         'route' => 'social_admin_fake_user_status_management',
  127.                     ]
  128.                 )
  129.                 ->getParent()
  130.                 ->getParent();
  131.         }
  132.         if (
  133.             $securityContext->isGranted(User::ROLE_HSTAFF) ||
  134.             $securityContext->isGranted(User::ROLE_FSTAFF) ||
  135.             $securityContext->isGranted(User::ROLE_ADMIN) ||
  136.             $securityContext->isGranted(User::ROLE_SUPER_ADMIN) ||
  137.             $securityContext->isGranted(User::ROLE_SUBADMIN)
  138.         ) {
  139.             $reportsMenu $menu
  140.                 ->addChild('Reports', [])
  141.                 ->setExtra('icon''<i class="fa fa-files-o"></i>');
  142.             if (
  143.                 $securityContext->isGranted(User::ROLE_FSTAFF) ||
  144.                 $securityContext->isGranted(User::ROLE_ADMIN) ||
  145.                 $securityContext->isGranted(User::ROLE_SUPER_ADMIN) ||
  146.                 $securityContext->isGranted(User::ROLE_SUBADMIN)
  147.             ) {
  148.                 $menu->getChild('new.dashboard')->setDisplay(true);
  149.                 $menu
  150.                     ->getChild('new.dashboard')
  151.                     ->addChild('Admin Dashboard', ['route' => 'social_admin_dashboard']);
  152.                 $reportsMenu->addChild(
  153.                     'Farmer Daily Reports',
  154.                     [
  155.                         'route' => 'social_admin_farmer_reports',
  156.                     ]
  157.                 )
  158.                             ->getParent();
  159.             }
  160.             if (
  161.                 $securityContext->isGranted(User::ROLE_HSTAFF) ||
  162.                 $securityContext->isGranted(User::ROLE_ADMIN) ||
  163.                 $securityContext->isGranted(User::ROLE_SUPER_ADMIN) ||
  164.                 $securityContext->isGranted(User::ROLE_SUBADMIN)
  165.             ) {
  166.                 $menu->getChild('new.dashboard')->setDisplay(true);
  167.                 $menu
  168.                     ->getChild('new.dashboard')
  169.                     ->addChild('Hstaff Dashboard', ['route' => 'social_admin_hstaff_dashboard']);
  170.                 $reportsMenu
  171.                     ->addChild(
  172.                         'Hunter Top 10 Site Source',
  173.                         [
  174.                             'route' => 'social_admin_hunter_top10_site_source',
  175.                         ]
  176.                     );
  177.             }
  178.         }
  179.         if ($this->container->getParameter('social_credits_mode_activated') == 1) {
  180.             if (
  181.                 $securityContext->isGranted(User::ROLE_HSTAFF) ||
  182.                 $securityContext->isGranted(User::ROLE_FSTAFF) ||
  183.                 $securityContext->isGranted(User::ROLE_ADMIN) ||
  184.                 $securityContext->isGranted(User::ROLE_SUPER_ADMIN) ||
  185.                 $securityContext->isGranted(User::ROLE_SUBADMIN)
  186.             ) {
  187.                 $paymentMenu $menu->getChild('payments');
  188.                 if ($this->creditsMode) {
  189.                     $paymentMenu
  190.                         ->addChild(
  191.                             'Credits History',
  192.                             [
  193.                                 'route' => 'social_admin_credits_history',
  194.                             ]
  195.                         )
  196.                         ->setExtra('icon''<i class="fa fa-money"></i>');
  197.                 }
  198.             }
  199.         }
  200.         $trafficPool $menu->getChild('traffic_pool');
  201.         $trafficPool
  202.             ->addChild(
  203.                 'Traffic pool users',
  204.                 [
  205.                     'route' => 'social_admin_traffic_pool_users_statistics',
  206.                     'extras' => [
  207.                         'icon' => '<i class="fa fa-users"></i>',
  208.                     ],
  209.                 ]
  210.             );
  211.         if ($securityContext->isGranted(User::ROLE_ADMIN) ||
  212.             $securityContext->isGranted(User::ROLE_SUPER_ADMIN) ||
  213.             $securityContext->isGranted(User::ROLE_SUBADMIN)
  214.         ) {
  215.             $menu
  216.                 ->addChild('Monitor', [])
  217.                 ->setExtra('icon''<i class="fa fa-desktop"></i>')
  218.                 ->addChild(
  219.                     'Relationships',
  220.                     [
  221.                         'route' => 'social_admin_monitor_relationship',
  222.                     ]
  223.                 )
  224.                 ->getParent()
  225.                 ->addChild(
  226.                     'Calls',
  227.                     [
  228.                         'route' => 'social_admin_stats_calls',
  229.                     ]
  230.                 )
  231.                 ->getParent()
  232.                 ->addChild(
  233.                     'Hunter Activity',
  234.                     [
  235.                         'route' => 'social_admin_monitor_hunter_activity',
  236.                     ]
  237.                 )
  238.                 ->getParent()
  239.                 ->addChild(
  240.                     'Farmer Activity',
  241.                     [
  242.                         'route' => 'social_admin_monitor_farmer_activity',
  243.                     ]
  244.                 );
  245.         }
  246.     }
  247. }