function user_access_test_entity_field_access

Same name and namespace in other branches
  1. 9 core/modules/user/tests/modules/user_access_test/user_access_test.module \user_access_test_entity_field_access()
  2. 8.9.x core/modules/user/tests/modules/user_access_test/user_access_test.module \user_access_test_entity_field_access()
  3. 10 core/modules/user/tests/modules/user_access_test/user_access_test.module \user_access_test_entity_field_access()

Implements hook_entity_field_access().

File

core/modules/user/tests/modules/user_access_test/user_access_test.module, line 50

Code

function user_access_test_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, ?FieldItemListInterface $items = NULL) {
    // Account with role sub-admin can view the status, init and mail fields for
    // user with no roles.
    if ($field_definition->getTargetEntityTypeId() == 'user' && $operation === 'view' && in_array($field_definition->getName(), [
        'status',
        'init',
        'mail',
    ])) {
        if ($items == NULL || count($items->getEntity()
            ->getRoles()) == 1) {
            return AccessResult::allowedIfHasPermission($account, 'sub-admin');
        }
    }
    if (\Drupal::state()->get('user_access_test_forbid_mail_edit', FALSE)) {
        if ($operation === 'edit' && $items && $items->getEntity()
            ->getEntityTypeId() === 'user' && $field_definition->getName() === 'mail') {
            return AccessResult::forbidden();
        }
    }
    return AccessResult::neutral();
}

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