Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 9 |
AccessArgumentsResolverFactory | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 9 |
getArgumentsResolver | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 9 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Access\AccessArgumentsResolverFactory. | |
*/ | |
namespace Drupal\Core\Access; | |
use Drupal\Component\Utility\ArgumentsResolver; | |
use Drupal\Core\Routing\RouteMatchInterface; | |
use Drupal\Core\Session\AccountInterface; | |
use Symfony\Component\HttpFoundation\Request; | |
/** | |
* Resolves the arguments to pass to an access check callable. | |
*/ | |
class AccessArgumentsResolverFactory implements AccessArgumentsResolverFactoryInterface { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getArgumentsResolver(RouteMatchInterface $route_match, AccountInterface $account, Request $request = NULL) { | |
$route = $route_match->getRouteObject(); | |
// Defaults for the parameters defined on the route object need to be added | |
// to the raw arguments. | |
$raw_route_arguments = $route_match->getRawParameters()->all() + $route->getDefaults(); | |
$upcasted_route_arguments = $route_match->getParameters()->all(); | |
// Parameters which are not defined on the route object, but still are | |
// essential for access checking are passed as wildcards to the argument | |
// resolver. An access-check method with a parameter of type Route, | |
// RouteMatchInterface, AccountInterface or Request will receive those | |
// arguments regardless of the parameter name. | |
$wildcard_arguments = [$route, $route_match, $account]; | |
if (isset($request)) { | |
$wildcard_arguments[] = $request; | |
} | |
return new ArgumentsResolver($raw_route_arguments, $upcasted_route_arguments, $wildcard_arguments); | |
} | |
} |