public function RadioactivityIncident::floodCheck in Radioactivity 7.2
Flood check Drupal only
File
- includes/RadioactivityIncident.inc, line 69 
- Incident class
Class
- RadioactivityIncident
- @file Incident class
Code
public function floodCheck() {
  static $enabled;
  static $timeout;
  // Check flood protection
  if (!$this->floodProtected) {
    return TRUE;
  }
  if (!isset($enabled)) {
    $enabled = variable_get('radioactivity_flood_protection', FALSE);
    $timeout = variable_get('radioactivity_flood_timeout', 15) * 60;
  }
  if ($enabled) {
    // check the map for hits
    $hit = db_select('radioactivity_flood_map', 'fm')
      ->fields('fm', array(
      'time',
    ))
      ->condition('fm.source', $this->source)
      ->condition('fm.time', $this->time - $timeout, ">")
      ->execute()
      ->fetchObject();
    if ($hit) {
      return FALSE;
    }
    // insert current
    db_merge('radioactivity_flood_map')
      ->key(array(
      'source' => $this->source,
    ))
      ->fields(array(
      'source' => $this->source,
      'time' => $this->time,
    ))
      ->execute();
    return TRUE;
  }
  return TRUE;
}