Mercurial > hg > isophonics-drupal-site
annotate core/modules/ban/src/BanIpManager.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 4c8ae668cc8c |
children |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 |
Chris@0 | 3 namespace Drupal\ban; |
Chris@0 | 4 |
Chris@0 | 5 use Drupal\Core\Database\Connection; |
Chris@0 | 6 |
Chris@0 | 7 /** |
Chris@0 | 8 * Ban IP manager. |
Chris@0 | 9 */ |
Chris@0 | 10 class BanIpManager implements BanIpManagerInterface { |
Chris@0 | 11 |
Chris@0 | 12 /** |
Chris@0 | 13 * The database connection used to check the IP against. |
Chris@0 | 14 * |
Chris@0 | 15 * @var \Drupal\Core\Database\Connection |
Chris@0 | 16 */ |
Chris@0 | 17 protected $connection; |
Chris@0 | 18 |
Chris@0 | 19 /** |
Chris@0 | 20 * Construct the BanSubscriber. |
Chris@0 | 21 * |
Chris@0 | 22 * @param \Drupal\Core\Database\Connection $connection |
Chris@0 | 23 * The database connection which will be used to check the IP against. |
Chris@0 | 24 */ |
Chris@0 | 25 public function __construct(Connection $connection) { |
Chris@0 | 26 $this->connection = $connection; |
Chris@0 | 27 } |
Chris@0 | 28 |
Chris@0 | 29 /** |
Chris@0 | 30 * {@inheritdoc} |
Chris@0 | 31 */ |
Chris@0 | 32 public function isBanned($ip) { |
Chris@0 | 33 return (bool) $this->connection->query("SELECT * FROM {ban_ip} WHERE ip = :ip", [':ip' => $ip])->fetchField(); |
Chris@0 | 34 } |
Chris@0 | 35 |
Chris@0 | 36 /** |
Chris@0 | 37 * {@inheritdoc} |
Chris@0 | 38 */ |
Chris@0 | 39 public function findAll() { |
Chris@0 | 40 return $this->connection->query('SELECT * FROM {ban_ip}'); |
Chris@0 | 41 } |
Chris@0 | 42 |
Chris@0 | 43 /** |
Chris@0 | 44 * {@inheritdoc} |
Chris@0 | 45 */ |
Chris@0 | 46 public function banIp($ip) { |
Chris@0 | 47 $this->connection->merge('ban_ip') |
Chris@0 | 48 ->key(['ip' => $ip]) |
Chris@0 | 49 ->fields(['ip' => $ip]) |
Chris@0 | 50 ->execute(); |
Chris@0 | 51 } |
Chris@0 | 52 |
Chris@0 | 53 /** |
Chris@0 | 54 * {@inheritdoc} |
Chris@0 | 55 */ |
Chris@0 | 56 public function unbanIp($id) { |
Chris@0 | 57 $this->connection->delete('ban_ip') |
Chris@0 | 58 ->condition('ip', $id) |
Chris@0 | 59 ->execute(); |
Chris@0 | 60 } |
Chris@0 | 61 |
Chris@0 | 62 /** |
Chris@0 | 63 * {@inheritdoc} |
Chris@0 | 64 */ |
Chris@0 | 65 public function findById($ban_id) { |
Chris@0 | 66 return $this->connection->query("SELECT ip FROM {ban_ip} WHERE iid = :iid", [':iid' => $ban_id])->fetchField(); |
Chris@0 | 67 } |
Chris@0 | 68 |
Chris@0 | 69 } |