You are here

function field_permission_example_entity_test_access in Examples for Developers 3.x

Same name and namespace in other branches
  1. 8 field_permission_example/field_permission_example.module \field_permission_example_entity_test_access()

Implements hook_ENTITY_TYPE_access().

Note: this routine is added so we can more easily test our access code. Core defines an entity_test entity that is used for testing fields in core. We add this routine to make the entity_test entity editable by our tests.

Related topics

File

modules/field_permission_example/field_permission_example.module, line 163
An example field using the Field Types API.

Code

function field_permission_example_entity_test_access(EntityInterface $entity, $operation, AccountInterface $account, $langcode) {
  if ($operation == 'edit') {
    $perms = [
      'administer the fieldnote field',
      'edit any fieldnote',
      'edit own fieldnote',
    ];
    foreach ($perms as $perm) {
      if ($account
        ->hasPermission($perm)) {
        return AccessResult::allowed();
      }
    }
  }
  return AccessResult::neutral();
}