You are here

public function LoginHistoryController::generateReportTable in Login History 8

Renders login histories as a table.

Parameters

array $history: A list of login history objects to output.

array $header: An array containing table header data.

Return value

array A table render array.

Throws

\Drupal\Component\Plugin\Exception\PluginNotFoundException

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException

1 call to LoginHistoryController::generateReportTable()
LoginHistoryController::report in src/Controller/LoginHistoryController.php
Displays a report of user logins.

File

src/Controller/LoginHistoryController.php, line 128

Class

LoginHistoryController
Controller routines for Login history routes.

Namespace

Drupal\login_history\Controller

Code

public function generateReportTable(array $history, array $header) {

  // Load all users first.
  $uids = [];
  foreach ($history as $entry) {
    $uids[] = $entry->uid;
  }

  /** @var \Drupal\user\Entity\User[] $users */
  $users = $this->entityTypeManager
    ->getStorage('user')
    ->loadMultiple($uids);
  $rows = [];
  foreach ($history as $entry) {
    $rows[] = [
      $this->dateFormatter
        ->format($entry->login, 'short'),
      $users[$entry->uid]
        ->getAccountName(),
      $entry->hostname,
      empty($entry->one_time) ? $this
        ->t('Regular login') : $this
        ->t('One-time login'),
      $entry->user_agent,
    ];
  }
  $output['history'] = [
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#empty' => $this
      ->t('No login history available.'),
  ];
  $output['pager'] = [
    '#type' => 'pager',
  ];
  return $output;
}