Version 1
[yaffs-website] / web / core / modules / views / tests / modules / views_entity_test / views_entity_test.module
diff --git a/web/core/modules/views/tests/modules/views_entity_test/views_entity_test.module b/web/core/modules/views/tests/modules/views_entity_test/views_entity_test.module
new file mode 100644 (file)
index 0000000..cd13653
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * @file
+ * Contains main module functionality.
+ */
+
+use Drupal\Core\Access\AccessResult;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Field\BaseFieldDefinition;
+use Drupal\Core\Field\FieldDefinitionInterface;
+use Drupal\Core\Field\FieldItemListInterface;
+use Drupal\Core\Session\AccountInterface;
+
+
+/**
+ * Implements hook_entity_bundle_field_info().
+ */
+function views_entity_test_entity_base_field_info(EntityTypeInterface $entity_type) {
+  if ($entity_type->id() == 'entity_test') {
+    $definitions['test_text_access'] = BaseFieldDefinition::create('string')
+      ->setLabel(t('Test access'))
+      ->setTranslatable(FALSE)
+      ->setSetting('max_length', 64)
+      ->setDisplayOptions('form', [
+        'type' => 'string_textfield',
+        'weight' => 10,
+      ]);
+    return $definitions;
+  }
+}
+
+/**
+ * Implements hook_entity_field_access().
+ *
+ * @see \Drupal\system\Tests\Entity\FieldAccessTest::testFieldAccess()
+ */
+function views_entity_test_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {
+  if ($field_definition->getName() == 'test_text_access') {
+    if ($items) {
+      if ($items->value == 'no access value') {
+        return AccessResult::forbidden()->addCacheableDependency($items->getEntity());
+      }
+    }
+  }
+  // No opinion.
+  return AccessResult::neutral();
+}