ctrl-f5/ctrl-rad-bundle

View on GitHub
Menu/SidebarMenuBuilder.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Ctrl\RadBundle\Menu;

use Knp\Menu\FactoryInterface;
use Symfony\Component\Security\Core\Authorization\AuthorizationChecker;

class SidebarMenuBuilder
{
    protected $authChecker;

    public function __construct(AuthorizationChecker $authChecker)
    {
        $this->authChecker = $authChecker;
    }

    /**
     * @param ConfigureMenuEvent $event
     */
    public function onMenuConfigure(ConfigureMenuEvent $event)
    {
        $menu = $event->getMenu();

        $menu->setChildrenAttribute('id', 'side-menu');
        $menu->setChildrenAttribute('class', 'nav');

        $menu->addChild('home', array(
            'route' => 'homepage',
            'label' => '<i class="fa fa-home fa-fw"></i> Home',
            'extras' => array('safe_label' => true),
        ));

        if ($this->authChecker->isGranted('ROLE_ADMIN')) {
            $menu->addChild('user_index', array(
                'route' => 'ctrl_rad_user_index',
                'label' => '<i class="fa fa-users fa-fw"></i> Users',
                'extras' => array('safe_label' => true),
            ));
        }

    }
}