protected function EmbedButtonEditorAccessCheck::checkButtonEditorAccess in Embed 8
Checks if the embed button is enabled in an editor configuration.
Parameters
\Drupal\embed\EmbedButtonInterface $embed_button: The embed button entity to check.
\Drupal\editor\EditorInterface $editor: The editor entity to check.
Return value
\Drupal\Core\Access\AccessResultInterface The access result.
Throws
\Symfony\Component\HttpKernel\Exception\HttpException When the received Text Editor entity does not use CKEditor. This is currently only capable of detecting buttons used by CKEditor.
1 call to EmbedButtonEditorAccessCheck::checkButtonEditorAccess()
- EmbedButtonEditorAccessCheck::access in src/Access/ EmbedButtonEditorAccessCheck.php 
- Checks whether the embed button is enabled for the given text editor.
File
- src/Access/ EmbedButtonEditorAccessCheck.php, line 80 
Class
- EmbedButtonEditorAccessCheck
- Routing requirement access check for embed buttons and text editors.
Namespace
Drupal\embed\AccessCode
protected function checkButtonEditorAccess(EmbedButtonInterface $embed_button, EditorInterface $editor) {
  if ($editor
    ->getEditor() !== 'ckeditor') {
    throw new HttpException(500, 'Currently, only CKEditor is supported.');
  }
  $has_button = FALSE;
  $settings = $editor
    ->getSettings();
  foreach ($settings['toolbar']['rows'] as $row) {
    foreach ($row as $group) {
      if (in_array($embed_button
        ->id(), $group['items'])) {
        $has_button = TRUE;
        break 2;
      }
    }
  }
  return AccessResult::allowedIf($has_button)
    ->addCacheableDependency($embed_button)
    ->addCacheableDependency($editor);
}