Untitled
unknown
plain_text
a year ago
1.3 kB
8
Indexable
<?php
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Session\AccountInterface;
/**
* Implements hook_entity_field_access().
*/
function profile_privacy_entity_field_access($op, EntityInterface $entity, $field, AccountInterface $account, $items) {
// Check if the entity is a user and the operation is 'view'.
if ($entity->getEntityTypeId() === 'user' && $op === 'view') {
// Check if the field is either 'field_first_name' or 'field_last_name'.
if (in_array($field->getName(), ['field_first_name', 'field_last_name'])) {
// Load the user's profile.
$profile = \Drupal::entityTypeManager()->getStorage('profile')->loadByProperties(['uid' => $entity->id()]);
$profile = reset($profile);
// Check if the profile exists and the taxonomy term is set.
if ($profile && $profile->hasField('field_taxonomy_term')) {
$terms = $profile->get('field_taxonomy_term')->referencedEntities();
foreach ($terms as $term) {
// Assuming the term name to check is 'hide my first name & last name'.
if ($term->getName() == 'hide my first name & last name') {
// Deny access to the field.
return FALSE;
}
}
}
}
}
// Default access.
return TRUE;
}Editor is loading...
Leave a Comment