protected function ViewFormControllerBase::prepareEntity

Overrides Drupal\Core\Entity\EntityFormController::prepareForm().

Overrides EntityFormController::prepareEntity

2 methods override ViewFormControllerBase::prepareEntity()
ViewAddFormController::prepareEntity in drupal/core/modules/views_ui/lib/Drupal/views_ui/ViewAddFormController.php
Overrides Drupal\Core\Entity\EntityFormController::prepareForm().
ViewCloneFormController::prepareEntity in drupal/core/modules/views_ui/lib/Drupal/views_ui/ViewCloneFormController.php
Overrides \Drupal\Core\Entity\EntityFormController::prepareForm().

File

drupal/core/modules/views_ui/lib/Drupal/views_ui/ViewFormControllerBase.php, line 44
Contains Drupal\views_ui\ViewFormControllerBase.

Class

ViewFormControllerBase
Base form controller for Views forms.

Namespace

Drupal\views_ui

Code

protected function prepareEntity() {

  // Determine the displays available for editing.
  if ($tabs = $this
    ->getDisplayTabs($this->entity)) {

    // If a display isn't specified, use the first one.
    if (empty($this->displayID)) {
      foreach ($tabs as $id => $tab) {
        if (!isset($tab['#access']) || $tab['#access']) {
          $this->displayID = $id;
          break;
        }
      }
    }

    // If a display is specified, but we don't have access to it, return
    // an access denied page.
    if ($this->displayID && !isset($tabs[$this->displayID])) {
      throw new NotFoundHttpException();
    }
    elseif ($this->displayID && (isset($tabs[$this->displayID]['#access']) && !$tabs[$this->displayID]['#access'])) {
      throw new AccessDeniedHttpException();
    }
  }
  elseif ($this->displayID) {
    throw new NotFoundHttpException();
  }
}