function social_profile_privacy_entity_field_access in Open Social 8.6
Same name and namespace in other branches
- 8.9 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 8 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 8.2 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 8.3 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 8.4 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 8.5 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 8.7 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 8.8 modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 10.3.x modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 10.0.x modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 10.1.x modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
- 10.2.x modules/social_features/social_profile/modules/social_profile_privacy/social_profile_privacy.module \social_profile_privacy_entity_field_access()
Implements hook_entity_field_access().
File
- modules/
social_features/ social_profile/ modules/ social_profile_privacy/ social_profile_privacy.module, line 319 - The Social profile privacy module file.
Code
function social_profile_privacy_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {
if ($operation == 'view' && $field_definition
->getTargetEntityTypeId() == 'profile' && $items !== NULL) {
$uid = $items
->getEntity()
->get('uid')->target_id;
$fields = social_profile_privacy_private_fields_list($uid);
// If owner.
$access = $uid == $account
->id();
// If field is not hidden.
$access = $access || !in_array($field_definition
->getName(), $fields);
// If user has access to view hidden fields.
$access = $access || $account
->hasPermission('social profile privacy view hidden fields');
$access_result = AccessResult::forbiddenIf(!$access);
return $access_result
->cachePerUser();
}
return AccessResult::neutral();
}