Falls Sie überprüfen möchten, ob ein Benutzer Zugang zu einer Route hat, können Sie die Methode checkNamedRoute des AccessManagers verwenden. Dazu benötigen Sie den Namen der Route, die Parameter der Route und ein AccountInterface-Objekt. Diese können Sie aus einem Route-Objekt abrufen oder direkt angeben.
$access_manager = \Drupal::service('access_manager'); $has_access = $access_manager->checkNamedRoute($route_name, $route_parameters, $account);
Wenn Sie beispielsweise überprüfen möchten, ob der aktuelle Benutzer Zugang zur Einzelansicht des Nodes mit der Node Id 9 hat, würde das ungefähr so aussehen:
$access_manager = \Drupal::service('access_manager'); $has_access = $access_manager->checkNamedRoute('entity.node.canonical', ['node' => 8], \Drupal::currentUser());
Falls Sie lieber ein AccessResult-Objekt anstatt von TRUE
oder FALSE
als Rückgabewert erhalten möchten, gibt es einen dritten Parameter, den Sie auf TRUE
setzen können.
Systeme
Drupal 8/9