You are here

function field_permissions_jsonapi_entity_field_filter_access in Field Permissions 8.2

Same name and namespace in other branches
  1. 8 field_permissions.module \field_permissions_jsonapi_entity_field_filter_access()

Implements hook_jsonapi_entity_field_filter_access().

File

./field_permissions.module, line 49
Contains field_permissions.module.

Code

function field_permissions_jsonapi_entity_field_filter_access(FieldDefinitionInterface $field_definition, AccountInterface $account) {
  if (!$field_definition
    ->isDisplayConfigurable('display')) {
    return AccessResult::neutral();
  }

  /** @var \Drupal\field_permissions\FieldPermissionsServiceInterface $service */
  $service = \Drupal::service('field_permissions.permissions_service');
  if ($service instanceof FieldPermissionsService) {
    $access = $service
      ->hasFieldViewAccessForEveryEntity($account, $field_definition);
  }
  else {
    $permission_type = $service
      ->fieldGetPermissionType($field_definition
      ->getFieldStorageDefinition());
    $access = $permission_type == FieldPermissionTypeInterface::ACCESS_PUBLIC;
  }
  return $access ? AccessResult::neutral() : AccessResult::forbidden();
}