public static function IpLoginController::checkIpLoginExists in IP Login 4.x
Looks up if current request IP matches an IP login.
Parameters
\Symfony\Component\HttpFoundation\Request $request: A request object.
Return value
string|false Returns the user ID if the IP address was matched, FALSE otherwise.
4 calls to IpLoginController::checkIpLoginExists()
- EarlyIpLoginMiddleware::handle in src/
StackMiddleware/ EarlyIpLoginMiddleware.php - IpLoginController::canLoginAsAnotherUser in src/
IpLoginController.php - Checks whether a user can log into another account.
- IpLoginController::loginProcess in src/
IpLoginController.php - Menu callback for IP-based login: do the actual login.
- ip_login_form_user_login_form_alter in ./
ip_login.module - Implements hook_form_FORM_ID_alter() for 'user_login_form'.
File
- src/
IpLoginController.php, line 78
Class
Namespace
Drupal\ip_loginCode
public static function checkIpLoginExists(Request $request) {
$ip = inet_pton($request
->getClientIp());
// This query is done super early in the request (before page cache), so we
// can optimize the majority case when the entity type is using core's
// default storage handler, and do a straight database query.
$entity_type = \Drupal::entityTypeManager()
->getDefinition('user');
if (is_subclass_of($entity_type
->getStorageClass(), SqlContentEntityStorage::class)) {
$result = \Drupal::database()
->select('users_field_data', 'ufd')
->fields('ufd', [
'uid',
])
->condition('ip_login__ip_start', $ip, '<=')
->condition('ip_login__ip_end', $ip, '>=')
->condition('status', 1)
->orderBy('uid', 'DESC')
->range(0, 1)
->execute()
->fetchCol();
$uid = reset($result);
}
else {
$query = \Drupal::entityQuery('user')
->condition('ip_login.ip_start', $ip, '<=')
->condition('ip_login.ip_end', $ip, '>=')
->condition('status', 1);
$uids = $query
->execute();
$uid = reset($uids);
}
return $uid;
}