You are here

public function FieldOverviewController::overview in Field Encryption 8.2

Same name and namespace in other branches
  1. 3.0.x src/Controller/FieldOverviewController.php \Drupal\field_encrypt\Controller\FieldOverviewController::overview()

Renders overview page of encrypted fields.

1 string reference to 'FieldOverviewController::overview'
field_encrypt.routing.yml in ./field_encrypt.routing.yml
field_encrypt.routing.yml

File

src/Controller/FieldOverviewController.php, line 44

Class

FieldOverviewController
Renders encrypted fields overview.

Namespace

Drupal\field_encrypt\Controller

Code

public function overview() {
  $encrypted_fields = $this
    ->getEncryptedFields();
  $build['table'] = array(
    '#type' => 'table',
    '#header' => [
      'field_name' => $this
        ->t('Field'),
      'entity_type' => $this
        ->t('Entity type'),
      'properties' => $this
        ->t('Properties'),
      'encryption_profile' => $this
        ->t('Encryption profile'),
      'count' => $this
        ->t('# encrypted field values'),
      'operations' => $this
        ->t('Operations'),
    ],
    '#title' => 'Overview of encrypted fields',
    '#rows' => array(),
    '#empty' => $this
      ->t('There are no encrypted fields.'),
  );
  foreach ($encrypted_fields as $encrypted_field) {
    $properties = $encrypted_field
      ->getThirdPartySetting('field_encrypt', 'properties', []);
    $entity_type = $encrypted_field
      ->getTargetEntityTypeId();
    $field_name = $encrypted_field
      ->getName();
    $row = [
      'field_name' => $field_name,
      'entity_type' => $entity_type,
      'properties' => [
        'data' => [
          '#theme' => 'item_list',
          '#items' => array_filter($properties),
        ],
      ],
      'encryption_profile' => $encrypted_field
        ->getThirdPartySetting('field_encrypt', 'encryption_profile', ''),
      'count' => $this
        ->getEncryptedFieldValueCount($entity_type, $field_name),
      'operations' => [
        'data' => [
          '#type' => 'operations',
          '#links' => [
            'decrypt' => [
              'title' => $this
                ->t('Decrypt'),
              'url' => Url::fromRoute('field_encrypt.field_decrypt_confirm', [
                'entity_type' => $entity_type,
                'field_name' => $field_name,
              ]),
            ],
          ],
        ],
      ],
    ];
    $build['table']['#rows'][$encrypted_field
      ->id()] = $row;
  }
  return $build;
}