public function LoginFirewall::execute in Restrict Login or Role Access by IP Address 8.4
Checks that login is allowed, and takes appropriate action if not.
Parameters
\Drupal\Core\Session\AccountInterface $account: The user to check if login is allowed.
Overrides LoginFirewallInterface::execute
File
- src/LoginFirewall.php, line 41 
Class
- LoginFirewall
- Class LoginFirewall.
Namespace
Drupal\restrict_by_ipCode
public function execute(AccountInterface $account) {
  if ($account
    ->isAuthenticated() && !$this
    ->isLoginAllowed($account)) {
    $user_ip = $this->ipTools
      ->getUserIP();
    // Log the error with the ip address.
    $this->logger
      ->notice(t('Login denied from @ip for %name.', [
      '%name' => $account
        ->getAccountName(),
      '@ip' => $user_ip,
    ]));
    user_logout();
    // Redirect after logout.
    $path = $this->config
      ->get('error_page');
    $options = [
      'absolute' => TRUE,
    ];
    if ($path) {
      $redirect = $this->urlGenerator
        ->assemble('base:' . $path, $options);
    }
    else {
      $redirect = Url::fromRoute('<current>', [], $options)
        ->toString();
    }
    $response = new RedirectResponse($redirect, RedirectResponse::HTTP_FOUND);
    $response
      ->send();
  }
}