5 * Contains hook implementations for testing REST module.
8 use Drupal\Core\Entity\EntityTypeInterface;
9 use Drupal\Core\Field\BaseFieldDefinition;
10 use Drupal\Core\Field\FieldDefinitionInterface;
11 use Drupal\Core\Session\AccountInterface;
12 use Drupal\Core\Field\FieldItemListInterface;
13 use Drupal\Core\Access\AccessResult;
16 * Implements hook_entity_field_access().
18 * @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::setUp()
20 function rest_test_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {
21 // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPost()
22 // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
23 if ($field_definition->getName() === 'field_rest_test') {
26 // Never ever allow this field to be viewed: this lets
27 // EntityResourceTestBase::testGet() test in a "vanilla" way.
28 return AccessResult::forbidden();
30 return AccessResult::forbidden();
34 // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testGet()
35 // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
36 if ($field_definition->getName() === 'field_rest_test_multivalue') {
39 // Never ever allow this field to be viewed: this lets
40 // EntityResourceTestBase::testGet() test in a "vanilla" way.
41 return AccessResult::forbidden();
45 // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testGet()
46 // @see \Drupal\Tests\rest\Functional\EntityResource\EntityResourceTestBase::testPatch()
47 if ($field_definition->getName() === 'rest_test_validation') {
50 // Never ever allow this field to be viewed: this lets
51 // EntityResourceTestBase::testGet() test in a "vanilla" way.
52 return AccessResult::forbidden();
57 return AccessResult::neutral();
61 * Implements hook_entity_base_field_info().
63 function rest_test_entity_base_field_info(EntityTypeInterface $entity_type) {
65 $fields['rest_test_validation'] = BaseFieldDefinition::create('string')
66 ->setLabel(t('REST test validation field'))
67 ->setDescription(t('A text field with some special validations attached used for testing purposes'))
68 ->addConstraint('rest_test_validation');