/**
  * {@inheritdoc}
  */
 public function buildRow(EntityInterface $entity)
 {
     $row['label'] = $entity->label();
     $definition = $entity->getPlugin()->getPluginDefinition();
     $row['plugin']['#markup'] = $definition['name'];
     $row['status']['#markup'] = $entity->status() ? $this->t('Enabled') : $this->t('Disabled');
     return $row + parent::buildRow($entity);
 }
 /**
  * {@inheritdoc}
  */
 public function buildRow(EntityInterface $entity)
 {
     $plugin = $this->shippingQuotePluginManager->createInstance($entity->getPluginId(), $entity->getPluginConfiguration());
     $row['label'] = $entity->label();
     $row['description']['#markup'] = $plugin->getDescription();
     $row['status']['#markup'] = $entity->status() ? $this->t('Enabled') : $this->t('Disabled');
     return $row + parent::buildRow($entity);
 }
 /**
  * {@inheritdoc}
  */
 protected function checkAccess(EntityInterface $currency, $operation, AccountInterface $account)
 {
     /** @var \Drupal\currency\Entity\CurrencyInterface $currency */
     // Don't let the default currency be deleted.
     if ($currency->getCurrencyCode() == 'XXX' && $operation == 'delete') {
         return AccessResult::forbidden();
     }
     // The "enable" and "disable" operations are aliases for "update", but with
     // extra checks.
     if ($operation == 'enable') {
         return $currency->status() ? AccessResult::forbidden() : $this->access($currency, 'update', $account, TRUE);
     }
     if ($operation == 'disable') {
         return $currency->status() ? $this->access($currency, 'update', $account, TRUE) : AccessResult::forbidden();
     }
     return AccessResult::allowedIfHasPermission($account, 'currency.currency.' . $operation);
 }
예제 #4
0
 /**
  * {@inheritdoc}
  */
 protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account)
 {
     /** @var \Drupal\page_manager\PageInterface $entity */
     if ($operation == 'view') {
         if (!$entity->status()) {
             return AccessResult::forbidden()->addCacheableDependency($entity);
         }
         $contexts = $entity->getContexts();
         $conditions = $entity->getAccessConditions();
         foreach ($conditions as $condition) {
             if ($condition instanceof ContextAwarePluginInterface) {
                 $this->contextHandler()->applyContextMapping($condition, $contexts);
             }
         }
         return AccessResult::allowedIf($this->resolveConditions($conditions, $entity->getAccessLogic()));
     }
     return parent::checkAccess($entity, $operation, $account);
 }
 /**
  * {@inheritdoc}
  */
 protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account)
 {
     /** @var $entity \Drupal\search\SearchPageInterface */
     if (in_array($operation, array('delete', 'disable')) && $entity->isDefaultSearch()) {
         return FALSE;
     }
     if ($operation == 'view') {
         if (!$entity->status()) {
             return FALSE;
         }
         $plugin = $entity->getPlugin();
         if ($plugin instanceof AccessibleInterface) {
             return $plugin->access($operation, $account);
         }
         return TRUE;
     }
     return parent::checkAccess($entity, $operation, $langcode, $account);
 }
예제 #6
0
 /**
  * {@inheritdoc}
  */
 protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account)
 {
     /** @var $entity \Drupal\page_manager\PageInterface */
     if ($operation == 'view') {
         if (!$entity->status()) {
             return AccessResult::forbidden()->cacheUntilEntityChanges($entity);
         }
         $conditions = $entity->getAccessConditions();
         $contexts = $entity->getExecutable()->getContexts();
         foreach ($conditions as $condition) {
             if ($condition instanceof ContextAwarePluginInterface) {
                 $this->contextHandler()->applyContextMapping($condition, $contexts);
             }
         }
         return AccessResult::allowedIf($this->resolveConditions($conditions, $entity->getAccessLogic()));
     }
     if ($operation == 'delete' && $entity->isFallbackPage()) {
         return AccessResult::forbidden()->cacheUntilEntityChanges($entity);
     }
     return parent::checkAccess($entity, $operation, $langcode, $account);
 }
예제 #7
0
 /**
  * {@inheritdoc}
  */
 public function buildRow(EntityInterface $entity)
 {
     /** @var $entity \Drupal\search\SearchPageInterface */
     $row['label'] = $entity->label();
     $row['url']['#markup'] = 'search/' . $entity->getPath();
     // If the search page is active, link to it.
     if ($entity->status()) {
         $row['url'] = array('#type' => 'link', '#title' => $row['url'], '#url' => Url::fromRoute('search.view_' . $entity->id()));
     }
     $definition = $entity->getPlugin()->getPluginDefinition();
     $row['plugin']['#markup'] = $definition['title'];
     if ($entity->isDefaultSearch()) {
         $status = $this->t('Default');
     } elseif ($entity->status()) {
         $status = $this->t('Enabled');
     } else {
         $status = $this->t('Disabled');
     }
     $row['status']['#markup'] = $status;
     if ($entity->isIndexable()) {
         $status = $entity->getPlugin()->indexStatus();
         $row['progress']['#markup'] = $this->t('%num_indexed of %num_total indexed', array('%num_indexed' => $status['total'] - $status['remaining'], '%num_total' => $status['total']));
     } else {
         $row['progress']['#markup'] = $this->t('Does not use index');
     }
     return $row + parent::buildRow($entity);
 }
예제 #8
0
 /**
  * Gets a list of paths assigned to the view.
  *
  * @param \Drupal\Core\Entity\EntityInterface $view
  *   The view entity.
  *
  * @return array
  *   An array of paths for this view.
  */
 protected function getDisplayPaths(EntityInterface $view)
 {
     $all_paths = array();
     $executable = $view->getExecutable();
     $executable->initDisplay();
     foreach ($executable->displayHandlers as $display) {
         if ($display->hasPath()) {
             $path = $display->getPath();
             if ($view->status() && strpos($path, '%') === FALSE) {
                 // @todo Views should expect and store a leading /. See:
                 //   https://www.drupal.org/node/2423913
                 $all_paths[] = \Drupal::l('/' . $path, Url::fromUserInput('/' . $path));
             } else {
                 $all_paths[] = '/' . $path;
             }
         }
     }
     return array_unique($all_paths);
 }
 /**
  * Gets a list of paths assigned to the view.
  *
  * @param \Drupal\Core\Entity\EntityInterface $view
  *   The view entity.
  *
  * @return array
  *   An array of paths for this view.
  */
 protected function getDisplayPaths(EntityInterface $view)
 {
     $all_paths = array();
     $executable = $view->getExecutable();
     $executable->initDisplay();
     foreach ($executable->displayHandlers as $display) {
         if ($display->hasPath()) {
             $path = $display->getPath();
             if ($view->status() && strpos($path, '%') === FALSE) {
                 $all_paths[] = _l('/' . $path, $path);
             } else {
                 $all_paths[] = String::checkPlain('/' . $path);
             }
         }
     }
     return array_unique($all_paths);
 }
예제 #10
0
  /**
   * {@inheritdoc}
   */
  public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
    if ($entity->status()) {
      $message = $this->contactMessageStorage->create([
        'contact_form' => $entity->id(),
      ]);

      $form = $this->entityFormBuilder->getForm($message);
      $form['#title'] = $entity->label();
      $form['#cache']['contexts'][] = 'user.permissions';

      $this->renderer->addCacheableDependency($form, $this->config);
    }
    else {
      // Form disabled, display a custom message using a template.
      $form['disabled_form_error'] = array(
        '#theme' => 'contact_storage_disabled_form',
        '#contact_form' => $entity,
        '#redirect_uri' => $entity->getThirdPartySetting('contact_storage', 'redirect_uri', ''),
        '#disabled_form_message' => $entity->getThirdPartySetting('contact_storage', 'disabled_form_message', t('This contact form has been disabled.')),
      );
    }
    // Add required cacheability metadata from the contact form entity, so that
    // changing it invalidates the cache.
    $this->renderer->addCacheableDependency($form, $entity);
    return $form;
  }