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;
}