You are here

public function ViewExecutable::access in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/src/ViewExecutable.php \Drupal\views\ViewExecutable::access()

Determines if the given user has access to the view.

Note that this sets the display handler if it hasn't been set.

Parameters

string $displays: The machine name of the display.

\Drupal\Core\Session\AccountInterface $account: The user object.

Return value

bool TRUE if the user has access to the view, FALSE otherwise.

File

core/modules/views/src/ViewExecutable.php, line 1747

Class

ViewExecutable
Represents a view as a whole.

Namespace

Drupal\views

Code

public function access($displays = NULL, $account = NULL) {

  // No one should have access to disabled views.
  if (!$this->storage
    ->status()) {
    return FALSE;
  }
  if (!isset($this->current_display)) {
    $this
      ->initDisplay();
  }
  if (!$account) {
    $account = $this->user;
  }

  // We can't use choose_display() here because that function
  // calls this one.
  $displays = (array) $displays;
  foreach ($displays as $display_id) {
    if ($this->displayHandlers
      ->has($display_id)) {
      if (($display = $this->displayHandlers
        ->get($display_id)) && $display
        ->access($account)) {
        return TRUE;
      }
    }
  }
  return FALSE;
}