diff core/modules/ban/src/BanIpManager.php @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/ban/src/BanIpManager.php	Thu Jul 05 14:24:15 2018 +0000
@@ -0,0 +1,69 @@
+<?php
+
+namespace Drupal\ban;
+
+use Drupal\Core\Database\Connection;
+
+/**
+ * Ban IP manager.
+ */
+class BanIpManager implements BanIpManagerInterface {
+
+  /**
+   * The database connection used to check the IP against.
+   *
+   * @var \Drupal\Core\Database\Connection
+   */
+  protected $connection;
+
+  /**
+   * Construct the BanSubscriber.
+   *
+   * @param \Drupal\Core\Database\Connection $connection
+   *   The database connection which will be used to check the IP against.
+   */
+  public function __construct(Connection $connection) {
+    $this->connection = $connection;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isBanned($ip) {
+    return (bool) $this->connection->query("SELECT * FROM {ban_ip} WHERE ip = :ip", [':ip' => $ip])->fetchField();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function findAll() {
+    return $this->connection->query('SELECT * FROM {ban_ip}');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function banIp($ip) {
+    $this->connection->merge('ban_ip')
+      ->key(['ip' => $ip])
+      ->fields(['ip' => $ip])
+      ->execute();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function unbanIp($id) {
+    $this->connection->delete('ban_ip')
+      ->condition('ip', $id)
+      ->execute();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function findById($ban_id) {
+    return $this->connection->query("SELECT ip FROM {ban_ip} WHERE iid = :iid", [':iid' => $ban_id])->fetchField();
+  }
+
+}