private function SpiController::getFailedLogins in Acquia Connector 8
Same name and namespace in other branches
- 8.2 src/Controller/SpiController.php \Drupal\acquia_connector\Controller\SpiController::getFailedLogins()
- 3.x src/Controller/SpiController.php \Drupal\acquia_connector\Controller\SpiController::getFailedLogins()
Get the information on failed logins in the last cron interval.
Return value
array Array of last 10 failed logins.
1 call to SpiController::getFailedLogins()
- SpiController::get in src/
Controller/ SpiController.php - Gather site profile information about this site.
File
- src/
Controller/ SpiController.php, line 527
Class
- SpiController
- SPI Controller class.
Namespace
Drupal\acquia_connector\ControllerCode
private function getFailedLogins() {
$last_logins = [];
$cron_interval = $this
->config('acquia_connector.settings')
->get('spi.cron_interval');
if ($this
->moduleHandler()
->moduleExists('dblog')) {
$result = Database::getConnection()
->select('watchdog', 'w')
->fields('w', [
'message',
'variables',
'timestamp',
])
->condition('w.message', 'login attempt failed%', 'LIKE')
->condition('w.timestamp', \Drupal::time()
->getRequestTime() - $cron_interval, '>')
->condition('w.message', [
"UPGRADE.txt",
"MAINTAINERS.txt",
"README.txt",
"INSTALL.pgsql.txt",
"INSTALL.txt",
"LICENSE.txt",
"INSTALL.mysql.txt",
"COPYRIGHT.txt",
"CHANGELOG.txt",
], 'NOT IN')
->orderBy('w.timestamp', 'DESC')
->range(0, 10)
->execute();
foreach ($result as $record) {
$variables = unserialize($record->variables);
if (!empty($variables['%user'])) {
$last_logins['failed'][$record->timestamp] = Html::escape($variables['%user']);
}
}
}
return $last_logins;
}