public function hasRouteAccess($routeName) { $token = $this->securityContext->getToken(); if ($token->isAuthenticated()) { $route = $this->router->getRouteCollection()->get($routeName); $controller = $route->getDefault('_controller'); list($class, $method) = explode('::', $controller, 2); $metadata = $this->getMetadata($class); if (!isset($metadata->methodMetadata[$method])) { return false; } foreach ($metadata->methodMetadata[$method]->roles as $role) { if ($this->securityContext->isGranted($role)) { return true; } } } return false; }