public function EmbedButtonEditorAccessCheck::access in Embed 8
Checks whether the embed button is enabled for the given text editor.
Returns allowed if the editor toolbar contains the embed button or neutral otherwise.
pattern: '/foo/{editor}/{embed_button}'
requirements:
  _embed_button_editor_access: 'TRUE'
Parameters
\Drupal\Core\Routing\RouteMatchInterface $route_match: The current route match.
\Drupal\Core\Session\AccountInterface $account: The currently logged in account.
Return value
\Drupal\Core\Access\AccessResultInterface The access result.
File
- src/Access/ EmbedButtonEditorAccessCheck.php, line 38 
Class
- EmbedButtonEditorAccessCheck
- Routing requirement access check for embed buttons and text editors.
Namespace
Drupal\embed\AccessCode
public function access(RouteMatchInterface $route_match, AccountInterface $account) {
  $parameters = $route_match
    ->getParameters();
  $access_result = AccessResult::allowedIf($parameters
    ->has('editor') && $parameters
    ->has('embed_button'))
    ->addCacheContexts([
    'route',
  ]);
  if ($access_result
    ->isAllowed()) {
    $editor = $parameters
      ->get('editor');
    $embed_button = $parameters
      ->get('embed_button');
    if ($editor instanceof EditorInterface && $embed_button instanceof EmbedButtonInterface) {
      return $access_result
        ->andIf($editor
        ->getFilterFormat()
        ->access('use', $account, TRUE))
        ->andIf($this
        ->checkButtonEditorAccess($embed_button, $editor));
    }
  }
  // No opinion, so other access checks should decide if access should be
  // allowed or not.
  return $access_result;
}