function UserRequestSubscriber::onKernelTerminate

Same name and namespace in other branches
  1. 9 core/modules/user/src/EventSubscriber/UserRequestSubscriber.php \Drupal\user\EventSubscriber\UserRequestSubscriber::onKernelTerminate()
  2. 8.9.x core/modules/user/src/EventSubscriber/UserRequestSubscriber.php \Drupal\user\EventSubscriber\UserRequestSubscriber::onKernelTerminate()
  3. 10 core/modules/user/src/EventSubscriber/UserRequestSubscriber.php \Drupal\user\EventSubscriber\UserRequestSubscriber::onKernelTerminate()

Updates the current user's last access time.

Parameters

\Symfony\Component\HttpKernel\Event\TerminateEvent $event: The event to process.

File

core/modules/user/src/EventSubscriber/UserRequestSubscriber.php, line 53

Class

UserRequestSubscriber
Updates the current user's last access time.

Namespace

Drupal\user\EventSubscriber

Code

public function onKernelTerminate(TerminateEvent $event) {
  if ($this->account
    ->isAuthenticated() && $this->time
    ->getRequestTime() - $this->account
    ->getLastAccessedTime() > Settings::get('session_write_interval', 180)) {
    // Do that no more than once per 180 seconds.
    /** @var \Drupal\user\UserStorageInterface $storage */
    $storage = $this->entityTypeManager
      ->getStorage('user');
    $storage->updateLastAccessTimestamp($this->account, $this->time
      ->getRequestTime());
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.