public function isNodeVisibleToUser(NavigationNode $node) { if (!is_array($node->getVisibleFor())) { return true; } $security = $this->container->get('security.context'); $token = $security->getToken(); $visibleFor = $node->getVisibleFor(); if (!$token instanceof \Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken) { $roles = array('ROLE_ANONYMUS'); } else { $roles = $token->getUser()->getRoles(); } return count(array_intersect($visibleFor, $roles)) > 0; }