function entity_test_entity_access
Same name in other branches
- 8.9.x core/modules/system/tests/modules/entity_test/entity_test.module \entity_test_entity_access()
- 10 core/modules/system/tests/modules/entity_test/entity_test.module \entity_test_entity_access()
- 11.x core/modules/system/tests/modules/entity_test/entity_test.module \entity_test_entity_access()
Implements hook_entity_access().
1 string reference to 'entity_test_entity_access'
- EntityAccessControlHandlerTest::testHooks in core/
tests/ Drupal/ KernelTests/ Core/ Entity/ EntityAccessControlHandlerTest.php - Tests hook invocations.
File
-
core/
modules/ system/ tests/ modules/ entity_test/ entity_test.module, line 733
Code
function entity_test_entity_access(EntityInterface $entity, $operation, AccountInterface $account) {
// Only apply to the 'entity_test' entities.
if ($entity->getEntityType()
->getProvider() != 'entity_test') {
return AccessResult::neutral();
}
\Drupal::state()->set('entity_test_entity_access', TRUE);
// Attempt to allow access to entities with the title forbid_access,
// this will be overridden by
// \Drupal\entity_test\EntityTestAccessControlHandler::checkAccess().
if ($entity->label() == 'forbid_access') {
return AccessResult::allowed();
}
// Create specific labels to allow or deny access based on certain test
// conditions.
// @see \Drupal\KernelTests\Core\Entity\EntityAccessControlHandlerTest
if ($entity->label() == 'Accessible') {
return AccessResult::allowed();
}
if ($entity->label() == 'Inaccessible') {
return AccessResult::forbidden();
}
// Uncacheable because the access result depends on a State key-value pair and
// might therefore change at any time.
$condition = \Drupal::state()->get("entity_test_entity_access.{$operation}." . $entity->id(), FALSE);
return AccessResult::allowedIf($condition)->setCacheMaxAge(0);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.