You are here

function social_profile_fields_entity_field_access in Open Social 8.4

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  2. 8.2 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  3. 8.3 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  4. 8.5 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  5. 8.6 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  6. 8.7 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  7. 8.8 modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  8. 10.3.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  9. 10.0.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  10. 10.1.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()
  11. 10.2.x modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module \social_profile_fields_entity_field_access()

Implements hook_entity_field_access().

File

modules/social_features/social_profile/modules/social_profile_fields/social_profile_fields.module, line 19
The social profile fields module file.

Code

function social_profile_fields_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {

  // By default, we return Switzerland.
  $access_result = AccessResult::neutral();
  if ($field_definition
    ->getTargetEntityTypeId() === 'profile') {
    $config = \Drupal::config('social_profile_fields.settings');
    $setting_name = $field_definition
      ->getTargetEntityTypeId() . '_' . $field_definition
      ->getTargetBundle() . '_' . $field_definition
      ->getName();
    $setting_value = $config
      ->get($setting_name);
    if (isset($setting_value) && !$setting_value) {

      // For the profile image field we have an exception. We'll fix it before
      // display.
      if ($setting_name === 'profile_profile_field_profile_image' && $operation === 'view') {
        $access_result = AccessResult::neutral();
      }
      else {
        $access_result = AccessResult::forbidden();
      }
    }
  }
  return $access_result;
}