You are here

class RightToBeForgottenDisplayTraversal in General Data Protection Regulation 8

Same name and namespace in other branches
  1. 8.2 modules/gdpr_tasks/src/Traversal/RightToBeForgottenDisplayTraversal.php \Drupal\gdpr_tasks\Traversal\RightToBeForgottenDisplayTraversal
  2. 3.0.x modules/gdpr_tasks/src/Traversal/RightToBeForgottenDisplayTraversal.php \Drupal\gdpr_tasks\Traversal\RightToBeForgottenDisplayTraversal

Entity traversal for the right to be forgotten preview display.

@package Drupal\gdpr_tasks

Hierarchy

Expanded class hierarchy of RightToBeForgottenDisplayTraversal

1 string reference to 'RightToBeForgottenDisplayTraversal'
gdpr_tasks.services.yml in modules/gdpr_tasks/gdpr_tasks.services.yml
modules/gdpr_tasks/gdpr_tasks.services.yml

File

modules/gdpr_tasks/src/Traversal/RightToBeForgottenDisplayTraversal.php, line 15

Namespace

Drupal\gdpr_tasks\Traversal
View source
class RightToBeForgottenDisplayTraversal extends EntityTraversal {

  /**
   * {@inheritdoc}
   *
   * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
   * @throws \Drupal\Core\Entity\EntityMalformedException
   */
  protected function processEntity(FieldableEntityInterface $entity, GdprFieldConfigEntity $config, $row_id, GdprField $parent_config = NULL) {
    $entity_type = $entity
      ->getEntityTypeId();
    $entity_definition = $entity
      ->getEntityType();
    $fields = $this->entityFieldManager
      ->getFieldDefinitions($entity_type, $entity
      ->bundle());
    $field_configs = $config
      ->getFieldsForBundle($entity
      ->bundle());
    foreach ($fields as $field_id => $field) {
      $field_config = isset($field_configs[$field_id]) ? $field_configs[$field_id] : NULL;

      // If the field is not configured, not enabled,
      // or not enabled for RTF, then skip it.
      if ($field_config === NULL || !$field_config->enabled || !in_array($field_config->rtf, [
        'anonymize',
        'remove',
        'maybe',
      ])) {
        continue;
      }
      $key = "{$entity_type}.{$entity->id()}.{$field_id}";
      $this->results[$key] = [
        'title' => $field
          ->getLabel(),
        'value' => $entity
          ->get($field_id)
          ->getString(),
        'entity' => $entity_definition
          ->getLabel(),
        'bundle' => $this
          ->getBundleLabel($entity),
        'notes' => $field_config->notes,
        'gdpr_rtf' => $field_config->rtf,
        'link' => $field_config->rtf == 'maybe' ? $entity
          ->toLink('Edit', 'edit-form') : '',
      ];
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
EntityTraversal::$baseEntity protected property The starting entity for the traversal.
EntityTraversal::$configStorage protected property Entity storage for GDPR config entities.
EntityTraversal::$entities protected property The processed entities.
EntityTraversal::$entityFieldManager protected property Entity field manager.
EntityTraversal::$entityTypeManager protected property Entity type manager.
EntityTraversal::$results protected property The results of the traversal.
EntityTraversal::$reverseRelationshipFields private property Reverse relationship information.
EntityTraversal::$success protected property Whether or not the traversal has happened successfully.
EntityTraversal::create public static function Creates an instance of the traversal for this specific entity. Overrides EntityTraversalContainerInjectionInterface::create 1
EntityTraversal::doTraversalRecursive protected function Traverses the entity relationship tree.
EntityTraversal::getAllReverseRelationships protected function Gets all reverse relationships configured in the system.
EntityTraversal::getBundleLabel protected function Gets the entity bundle label. Useful for display traversal.
EntityTraversal::getEntities public function Get the calculated actual calling points.
EntityTraversal::getResults public function Get the traversal results. Overrides EntityTraversalInterface::getResults
EntityTraversal::traverse public function Traverses the entity relationship tree if not done before. Overrides EntityTraversalInterface::traverse
EntityTraversal::traverseEntity protected function Traverses the entity relationship tree. 1
EntityTraversal::__construct public function EntityTraversal constructor. 1
RightToBeForgottenDisplayTraversal::processEntity protected function Overrides EntityTraversal::processEntity