function RestTestHooks::entityFieldAccess

Implements hook_entity_field_access().

Attributes

#[Hook('entity_field_access')]

See also

\Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::setUp()

File

core/modules/rest/tests/modules/rest_test/src/Hook/RestTestHooks.php, line 26

Class

RestTestHooks
Hook implementations for rest_test.

Namespace

Drupal\rest_test\Hook

Code

public function entityFieldAccess($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, ?FieldItemListInterface $items = NULL) : AccessResultInterface {
  // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPost()
  // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
  if ($field_definition->getName() === 'field_rest_test') {
    switch ($operation) {
      case 'view':
        // Never ever allow this field to be viewed: this lets
        // EntityResourceTestBase::testGet() test in a "vanilla" way.
        return AccessResult::forbidden();
      case 'edit':
        return AccessResult::forbidden();
    }
  }
  // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testGet()
  // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
  if ($field_definition->getName() === 'field_rest_test_multivalue') {
    switch ($operation) {
      case 'view':
        // Never ever allow this field to be viewed: this lets
        // EntityResourceTestBase::testGet() test in a "vanilla" way.
        return AccessResult::forbidden();
    }
  }
  // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testGet()
  // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
  if ($field_definition->getName() === 'rest_test_validation') {
    switch ($operation) {
      case 'view':
        // Never ever allow this field to be viewed: this lets
        // EntityResourceTestBase::testGet() test in a "vanilla" way.
        return AccessResult::forbidden();
    }
  }
  // No opinion.
  return AccessResult::neutral();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.