function AccessManager::checkNamedRoute
Same name in other branches
- 9 core/lib/Drupal/Core/Access/AccessManager.php \Drupal\Core\Access\AccessManager::checkNamedRoute()
- 8.9.x core/lib/Drupal/Core/Access/AccessManager.php \Drupal\Core\Access\AccessManager::checkNamedRoute()
- 11.x core/lib/Drupal/Core/Access/AccessManager.php \Drupal\Core\Access\AccessManager::checkNamedRoute()
File
-
core/
lib/ Drupal/ Core/ Access/ AccessManager.php, line 82
Class
- AccessManager
- Attaches access check services to routes and runs them on request.
Namespace
Drupal\Core\AccessCode
public function checkNamedRoute($route_name, array $parameters = [], ?AccountInterface $account = NULL, $return_as_object = FALSE) {
try {
$route = $this->routeProvider
->getRouteByName($route_name);
// ParamConverterManager relies on the route name and object being
// available from the parameters array.
$parameters[RouteObjectInterface::ROUTE_NAME] = $route_name;
$parameters[RouteObjectInterface::ROUTE_OBJECT] = $route;
$upcasted_parameters = $this->paramConverterManager
->convert($parameters + $route->getDefaults());
$route_match = new RouteMatch($route_name, $route, $upcasted_parameters, $parameters);
return $this->check($route_match, $account, NULL, $return_as_object);
} catch (RouteNotFoundException $e) {
// Cacheable until extensions change.
$result = AccessResult::forbidden()->addCacheTags([
'config:core.extension',
]);
return $return_as_object ? $result : $result->isAllowed();
} catch (ParamNotConvertedException $e) {
// Uncacheable because conversion of the parameter may not have been
// possible due to dynamic circumstances.
$result = AccessResult::forbidden()->setCacheMaxAge(0);
return $return_as_object ? $result : $result->isAllowed();
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.