public function CustomAccessCheck::access in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Access/CustomAccessCheck.php \Drupal\Core\Access\CustomAccessCheck::access()
 - 9 core/lib/Drupal/Core/Access/CustomAccessCheck.php \Drupal\Core\Access\CustomAccessCheck::access()
 
Checks access for the account and route using the custom access checker.
Parameters
\Symfony\Component\Routing\Route $route: The route.
\Drupal\Core\Routing\RouteMatchInterface $route_match: The route match object to be checked.
\Drupal\Core\Session\AccountInterface $account: The account being checked.
Return value
\Drupal\Core\Access\AccessResultInterface The access result.
File
- core/
lib/ Drupal/ Core/ Access/ CustomAccessCheck.php, line 63  
Class
- CustomAccessCheck
 - Defines an access checker that allows specifying a custom method for access.
 
Namespace
Drupal\Core\AccessCode
public function access(Route $route, RouteMatchInterface $route_match, AccountInterface $account) {
  try {
    $callable = $this->controllerResolver
      ->getControllerFromDefinition($route
      ->getRequirement('_custom_access'));
  } catch (\InvalidArgumentException $e) {
    // The custom access controller method was not found.
    throw new \BadMethodCallException(sprintf('The "%s" method is not callable as a _custom_access callback in route "%s"', $route
      ->getRequirement('_custom_access'), $route
      ->getPath()));
  }
  $arguments_resolver = $this->argumentsResolverFactory
    ->getArgumentsResolver($route_match, $account);
  $arguments = $arguments_resolver
    ->getArguments($callable);
  return call_user_func_array($callable, $arguments);
}