public function check(RouteMatchInterface
$route_match, AccountInterface
$account = NULL, Request
$request = NULL,
$return_as_object = FALSE
) { if (!
isset($account)) { $account =
$this->currentUser;
} $route =
$route_match->
getRouteObject();
$checks =
$route->
getOption('_access_checks'
) ?:
[];
// Filter out checks which require the incoming request.
if (!
isset($request)) { $checks =
array_diff($checks,
$this->checkProvider->
getChecksNeedRequest());
} $result = AccessResult::
neutral();
if (!
empty($checks)) { $arguments_resolver =
$this->argumentsResolverFactory->
getArgumentsResolver($route_match,
$account,
$request);
$result = AccessResult::
allowed();
foreach ($checks as $service_id) { $result =
$result->
andIf($this->
performCheck($service_id,
$arguments_resolver));
} } return $return_as_object ?
$result :
$result->
isAllowed();
}