function CustomAccessCheck::access
Same name in other branches
- 9 core/lib/Drupal/Core/Access/CustomAccessCheck.php \Drupal\Core\Access\CustomAccessCheck::access()
- 8.9.x core/lib/Drupal/Core/Access/CustomAccessCheck.php \Drupal\Core\Access\CustomAccessCheck::access()
- 10 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.
\Symfony\Component\HttpFoundation\Request $request: Optional, a request. Only supply this parameter when checking the incoming request.
Return value
\Drupal\Core\Access\AccessResultInterface The access result.
File
-
core/
lib/ Drupal/ Core/ Access/ CustomAccessCheck.php, line 54
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, ?Request $request = NULL) {
try {
$callable = $this->callableResolver
->getCallableFromDefinition($route->getRequirement('_custom_access'));
} catch (\InvalidArgumentException) {
// 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, $request);
$arguments = $arguments_resolver->getArguments($callable);
return call_user_func_array($callable, $arguments);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.