Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. FieldBlock.php

function FieldBlock::blockAccess

Overrides BlockPluginTrait::blockAccess

File

core/modules/layout_builder/src/Plugin/Block/FieldBlock.php, line 194

Class

FieldBlock
Provides a block that renders a field from an entity.

Namespace

Drupal\layout_builder\Plugin\Block

Code

protected function blockAccess(AccountInterface $account) {
    $entity = $this->getEntity();
    // First consult the entity.
    $access = $entity->access('view', $account, TRUE);
    if (!$access->isAllowed()) {
        return $access;
    }
    // Check that the entity in question has this field.
    if (!$entity instanceof FieldableEntityInterface || !$entity->hasField($this->fieldName)) {
        return $access->andIf(AccessResult::forbidden());
    }
    // Check field access.
    $field = $entity->get($this->fieldName);
    $access = $access->andIf($field->access('view', $account, TRUE));
    if (!$access->isAllowed()) {
        return $access;
    }
    // Check to see if the field has any values or a default value.
    if ($field->isEmpty() && !$this->entityFieldHasDefaultValue()) {
        return $access->andIf(AccessResult::forbidden());
    }
    return $access;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal