Problem/Motivation

The unban button in the Drupal log does not work.

Steps to reproduce

1) Open the Drupal log
2) Ban and IP
3) Try to unban the same IP

Clicking on the unban button does not unban de IP address.

The following error can be found in the Drupal log.

Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'komorebi_v2.bam_ip' doesn't exist: SELECT 1 AS "expression" FROM "bam_ip" "bam_ip" WHERE "ip" = :db_condition_placeholder_0; Array ( [:db_condition_placeholder_0] => 40.83.2.67 ) in Drupal\auto_unban\BanIpManager->unbanIp() (line 100 of /var/www/komorebi-amado.jp/web/modules/contrib/auto_unban/src/BanIpManager.php).

Proposed resolution

From the above error message, it is clear that BanIpManager.php has a typo in the code of the function below that triggers this problem.

  /**
   * {@inheritdoc}
   */
  public function unbanIp($ip) {
    // To unban an IP, set the expires to 0. This is only used by the UI,
    // because IPs are auto-unbanned when the ban expires.
    $this->connection->merge('bam_ip')
      ->key(['ip' => $ip])
      ->fields(['expires' => 0])
      ->execute();
  }

The line

$this->connection->merge('bam_ip')

should be changed to

$this->connection->merge('ban_ip')

After making this change, unban works as expected and no error is found in the Drupal log.

Issue fork auto_unban-3379413

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

ilfelice created an issue. See original summary.

douggreen’s picture

Status: Active » Fixed

I fixed the typo in the table name, thanks!

ilfelice’s picture

douggreen, thank you for the fix!

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.