You are here

public static function WebformHandlerAccess::checkHandlerAccess in Webform 6.x

Same name and namespace in other branches
  1. 8.5 src/Access/WebformHandlerAccess.php \Drupal\webform\Access\WebformHandlerAccess::checkHandlerAccess()

Check whether the webform handler is enabled.

Parameters

string $webform_handler: A webform handler id.

Return value

\Drupal\Core\Access\AccessResultInterface The access result.

1 string reference to 'WebformHandlerAccess::checkHandlerAccess'
webform.routing.yml in ./webform.routing.yml
webform.routing.yml

File

src/Access/WebformHandlerAccess.php, line 21

Class

WebformHandlerAccess
Defines the custom access control handler for the webform handlers.

Namespace

Drupal\webform\Access

Code

public static function checkHandlerAccess($webform_handler = NULL) {

  /** @var \Drupal\webform\Plugin\WebformHandlerManagerInterface $handler_manager */
  $handler_manager = \Drupal::service('plugin.manager.webform.handler');
  $handler_definitions = $handler_manager
    ->getDefinitions();
  $handler_definitions = $handler_manager
    ->removeExcludeDefinitions($handler_definitions);
  if ($webform_handler) {
    $access_result = AccessResult::allowedIf(!empty($handler_definitions[$webform_handler]));
  }
  else {
    unset($handler_definitions['broken'], $handler_definitions['email']);
    $access_result = AccessResult::allowedIf(!empty($handler_definitions));
  }
  return $access_result
    ->addCacheTags([
    'config:webform.settings',
  ]);
}