public function GeolocateUserSubscriber::GeolocateUser in Smart IP 8.2
Same name and namespace in other branches
- 8.4 src/EventSubscriber/GeolocateUserSubscriber.php \Drupal\smart_ip\EventSubscriber\GeolocateUserSubscriber::geolocateUser()
- 8.3 src/EventSubscriber/GeolocateUserSubscriber.php \Drupal\smart_ip\EventSubscriber\GeolocateUserSubscriber::geolocateUser()
Initiate user geolocation.
Parameters
\Symfony\Component\HttpKernel\Event\GetResponseEvent $event:
File
- src/
EventSubscriber/ GeolocateUserSubscriber.php, line 27 - Contains \Drupal\smart_ip\EventSubscriber\GeolocateUserSubscriber.
Class
- GeolocateUserSubscriber
- Allows Smart IP to act on HTTP request event.
Namespace
Drupal\smart_ip\EventSubscriberCode
public function GeolocateUser(GetResponseEvent $event) {
// Check to see if the page is one of those allowed for geolocation
if (!\Drupal\smart_ip\SmartIp::checkAllowedPage()) {
// This page is not on the list to acquire/update user's geolocation
return;
}
/** @var \Drupal\smart_ip\SmartIpLocation $location */
$location = \Drupal::service('smart_ip.smart_ip_location');
// Save a database hit. If there's already session data, don't check if we
// need to geolocate the anonymous role.
if (empty($location
->getData())) {
$roles = \Drupal::config('smart_ip.settings')
->get('roles_to_geolocate');
if (in_array(AccountInterface::ANONYMOUS_ROLE, $roles)) {
SmartIp::updateUserLocation();
}
}
}