You are here

function social_profile_privacy_private_fields_list in Open Social 10.3.x

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

Returns fields the names that marked as hidden.

Parameters

int $uid: Identifier of a user.

Return value

array Array with the names of fields that marked as hidden.

2 calls to social_profile_privacy_private_fields_list()
SocialProfileNameService::getProfileName in modules/social_features/social_profile/src/SocialProfileNameService.php
Get profile name.
social_profile_privacy_entity_field_access in modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module
Implements hook_entity_field_access().

File

modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module, line 333
The Social profile privacy module file.

Code

function social_profile_privacy_private_fields_list($uid) {
  $fields =& drupal_static(__FUNCTION__, []);
  if (isset($fields[$uid])) {
    return $fields[$uid];
  }

  /** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $display */
  $display = \Drupal::entityTypeManager()
    ->getStorage('entity_form_display')
    ->load('profile.profile.default');
  $config = \Drupal::config('social_profile_privacy.settings');
  $global_visibility = (array) $config
    ->get('fields');
  $fields[$uid] = [];

  /** @var \Drupal\user\UserDataInterface $user_data */
  $user_data = \Drupal::service('user.data');
  $user_visibility = (array) $user_data
    ->get('social_profile_privacy', $uid, 'fields');
  foreach ($display
    ->getThirdPartySettings('field_group') as $field_group) {
    foreach ($field_group['children'] as $field) {
      if (!isset($global_visibility[$field])) {
        continue;
      }
      $visibility = $global_visibility[$field];
      if ($visibility === SocialProfilePrivacyHelperInterface::HIDE || $visibility === SocialProfilePrivacyHelperInterface::CONFIGURABLE && isset($user_visibility[$field]) && !$user_visibility[$field]) {
        $fields[$uid][] = $field;
      }
    }
  }
  return $fields[$uid];
}