function DatabaseBackend::isAllowed

Same name in other branches
  1. 9 core/lib/Drupal/Core/Flood/DatabaseBackend.php \Drupal\Core\Flood\DatabaseBackend::isAllowed()
  2. 8.9.x core/lib/Drupal/Core/Flood/DatabaseBackend.php \Drupal\Core\Flood\DatabaseBackend::isAllowed()
  3. 10 core/lib/Drupal/Core/Flood/DatabaseBackend.php \Drupal\Core\Flood\DatabaseBackend::isAllowed()

Overrides FloodInterface::isAllowed

File

core/lib/Drupal/Core/Flood/DatabaseBackend.php, line 119

Class

DatabaseBackend
Defines the database flood backend. This is the default Drupal backend.

Namespace

Drupal\Core\Flood

Code

public function isAllowed($name, $threshold, $window = 3600, $identifier = NULL) {
    if (!isset($identifier)) {
        $identifier = $this->requestStack
            ->getCurrentRequest()
            ->getClientIp();
    }
    try {
        $number = $this->connection
            ->select(static::TABLE_NAME, 'f')
            ->condition('event', $name)
            ->condition('identifier', $identifier)
            ->condition('timestamp', $this->time
            ->getRequestTime() - $window, '>')
            ->countQuery()
            ->execute()
            ->fetchField();
        return $number < $threshold;
    } catch (\Exception $e) {
        if (!$this->ensureTableExists()) {
            throw $e;
        }
        return TRUE;
    }
}

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