diff --git a/core/lib/Drupal/Core/Access/AccessManager.php b/core/lib/Drupal/Core/Access/AccessManager.php index 15216e5..3d81dfe 100644 --- a/core/lib/Drupal/Core/Access/AccessManager.php +++ b/core/lib/Drupal/Core/Access/AccessManager.php @@ -201,6 +201,8 @@ public function checkRequest(Request $request, AccountInterface $account) { * {@inheritdoc} */ public function check(RouteMatchInterface $route_match, AccountInterface $account, Request $request = NULL) { + $access = FALSE; + $route = $route_match->getRouteObject(); $checks = $route->getOption('_access_checks') ?: array(); $conjunction = $route->getOption('_access_mode') ?: static::ACCESS_MODE_ALL; @@ -210,13 +212,17 @@ public function check(RouteMatchInterface $route_match, AccountInterface $accoun $checks = array_diff($checks, $this->checkNeedsRequest); } - $arguments_resolver = $this->argumentsResolverFactory->getArgumentsResolver($route_match, $account, $request); - if ($conjunction == static::ACCESS_MODE_ALL) { - return $this->checkAll($checks, $arguments_resolver); - } - else { - return $this->checkAny($checks, $arguments_resolver); + if (!empty($checks)) { + $arguments_resolver = $this->argumentsResolverFactory->getArgumentsResolver($route_match, $account, $request); + if ($conjunction == static::ACCESS_MODE_ALL) { + return $this->checkAll($checks, $arguments_resolver); + } + else { + return $this->checkAny($checks, $arguments_resolver); + } } + + return $access; } /**