You are here

protected function WebformSubmissionListBuilder::getSubmissionViews in Webform 8.5

Same name and namespace in other branches
  1. 6.x src/WebformSubmissionListBuilder.php \Drupal\webform\WebformSubmissionListBuilder::getSubmissionViews()

Get submission views applicable for the current route and user.

Return value

array An associative array of submission views applicable for the current route and user.

1 call to WebformSubmissionListBuilder::getSubmissionViews()
WebformSubmissionListBuilder::__construct in src/WebformSubmissionListBuilder.php
Constructs a new WebformSubmissionListBuilder object.

File

src/WebformSubmissionListBuilder.php, line 1247

Class

WebformSubmissionListBuilder
Provides a list controller for webform submission entity.

Namespace

Drupal\webform

Code

protected function getSubmissionViews() {
  if (!$this
    ->moduleHandler()
    ->moduleExists('views')) {
    return [];
  }
  $type = $this
    ->getSubmissionViewType();
  $route_name = $this->routeMatch
    ->getRouteName();
  $submission_views = $this
    ->getSubmissionViewsConfig();
  foreach ($submission_views as $name => $submission_view) {
    $submission_view += [
      'global_routes' => [],
      'webform_routes' => [],
      'node_routes' => [],
    ];

    // Check global, webform, or node routes.
    $routes = $submission_view[$type . '_routes'];
    if (empty($routes) || !in_array($route_name, $routes)) {
      unset($submission_views[$name]);
      continue;
    }
    list($view_name, $view_display_id) = explode(':', $submission_view['view']);
    $view = Views::getView($view_name);
    if (!$view || !$view
      ->access($view_display_id)) {
      unset($submission_views[$name]);
      continue;
    }
  }
  return $submission_views;
}