You are here

public function SecurityReview::collect in DRD Agent 8.3

Same name and namespace in other branches
  1. 4.0.x src/Agent/Remote/SecurityReview.php \Drupal\drd_agent\Agent\Remote\SecurityReview::collect()

Collect the security review results.

Return value

array List of all the security review results.

Overrides BaseInterface::collect

File

src/Agent/Remote/SecurityReview.php, line 17

Class

SecurityReview
Implements the SecurityReview class.

Namespace

Drupal\drd_agent\Agent\Remote

Code

public function collect() : array {
  $review = [];
  if ($this->moduleHandler
    ->moduleExists('security_review')) {

    /** @var \Drupal\security_review\SecurityReview $security_review */
    $security_review = $this->container
      ->get('security_review');

    // Only check once per day.
    if ($this->time
      ->getRequestTime() - $security_review
      ->getLastRun() > 86400) {

      /** @var \Drupal\Core\Session\AccountSwitcherInterface $switcher */
      $switcher = $this->container
        ->get('account_switcher');
      $switcher
        ->switchTo(new UserSession([
        'uid' => 1,
      ]));

      /** @var \Drupal\security_review\Checklist $checklist */
      $checklist = $this->container
        ->get('security_review.checklist');
      $checklist
        ->runChecklist();
      $switcher
        ->switchBack();
    }
    $clc = ChecklistController::create($this->container);
    $review['security_review'] = [
      'title' => t('Security Review'),
      'result' => $clc
        ->results(),
    ];
  }
  return $review;
}