class UserFloodSubscriber
Same name in other branches
- 9 core/modules/user/src/EventSubscriber/UserFloodSubscriber.php \Drupal\user\EventSubscriber\UserFloodSubscriber
- 11.x core/modules/user/src/EventSubscriber/UserFloodSubscriber.php \Drupal\user\EventSubscriber\UserFloodSubscriber
Logs details of User Flood Control events.
Hierarchy
- class \Drupal\user\EventSubscriber\UserFloodSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
Expanded class hierarchy of UserFloodSubscriber
1 string reference to 'UserFloodSubscriber'
- user.services.yml in core/
modules/ user/ user.services.yml - core/modules/user/user.services.yml
1 service uses UserFloodSubscriber
- user.flood_subscriber in core/
modules/ user/ user.services.yml - Drupal\user\EventSubscriber\UserFloodSubscriber
File
-
core/
modules/ user/ src/ EventSubscriber/ UserFloodSubscriber.php, line 14
Namespace
Drupal\user\EventSubscriberView source
class UserFloodSubscriber implements EventSubscriberInterface {
/**
* The default logger service.
*
* @var \Psr\Log\LoggerInterface
*/
protected $logger;
/**
* Constructs a UserFloodSubscriber.
*
* @param \Psr\Log\LoggerInterface $logger
* A logger instance.
*/
public function __construct(?LoggerInterface $logger = NULL) {
$this->logger = $logger;
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() : array {
$events[UserEvents::FLOOD_BLOCKED_USER][] = [
'blockedUser',
];
$events[UserEvents::FLOOD_BLOCKED_IP][] = [
'blockedIp',
];
return $events;
}
/**
* An attempt to login has been blocked based on user name.
*
* @param \Drupal\user\Event\UserFloodEvent $floodEvent
* The flood event.
*/
public function blockedUser(UserFloodEvent $floodEvent) {
if (Settings::get('log_user_flood', TRUE)) {
$uid = $floodEvent->getUid();
if ($floodEvent->hasIp()) {
$ip = $floodEvent->getIp();
$this->logger
->notice('Flood control blocked login attempt for uid %uid from %ip', [
'%uid' => $uid,
'%ip' => $ip,
]);
return;
}
$this->logger
->notice('Flood control blocked login attempt for uid %uid', [
'%uid' => $uid,
]);
}
}
/**
* An attempt to login has been blocked based on IP.
*
* @param \Drupal\user\Event\UserFloodEvent $floodEvent
* The flood event.
*/
public function blockedIp(UserFloodEvent $floodEvent) {
if (Settings::get('log_user_flood', TRUE)) {
$this->logger
->notice('Flood control blocked login attempt from %ip', [
'%ip' => $floodEvent->getIp(),
]);
}
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
UserFloodSubscriber::$logger | protected | property | The default logger service. |
UserFloodSubscriber::blockedIp | public | function | An attempt to login has been blocked based on IP. |
UserFloodSubscriber::blockedUser | public | function | An attempt to login has been blocked based on user name. |
UserFloodSubscriber::getSubscribedEvents | public static | function | |
UserFloodSubscriber::__construct | public | function | Constructs a UserFloodSubscriber. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.