1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 11:50:30 +02:00

Fixes #4757 and adds user_ip_changed trigger.

This commit is contained in:
Cameron
2022-04-18 15:09:12 -07:00
parent b7e0b562a6
commit 64b1cdcbc2
3 changed files with 25 additions and 5 deletions

View File

@@ -94,7 +94,8 @@ class e107_event
'user_ban_flood' => NS_LAN_2,
'user_ban_failed_login' => NS_LAN_3,
'user_profile_display' => NU_LAN_8,
'user_profile_edit' => NU_LAN_9
'user_profile_edit' => NU_LAN_9,
'user_ip_changed' => defset('NU_LAN_10', 'User IP changed')
),

View File

@@ -2138,19 +2138,36 @@ class e_user extends e_user_model
{
$sql = e107::getDb();
$this->set('last_ip', $this->get('user_ip'));
$current_ip = e107::getIPHandler()->getIP(FALSE);
$update_ip = $this->get('user_ip' != $current_ip ? ", user_ip = '".$current_ip."'" : "");
$current_ip = e107::getIPHandler()->getIP();
$update_ip = '';
if($this->get('user_ip') != $current_ip)
{
$update_ip = ", user_ip = '".$current_ip."'";
$edata = [
'old_ip' => $this->get('user_ip'),
'new_ip' => $current_ip,
'time' => date('c'),
'user_id' => $this->getId(),
'user_name' => $this->get('user_name'),
];
e107::getEvent()->trigger('user_ip_changed', $edata); // new v2.3.3
}
$update_ip = ($this->get('user_ip') != $current_ip) ? ", user_ip = '".$current_ip."'" : '';
$this->set('user_ip', $current_ip);
if($this->get('user_currentvisit') + 3600 < time() || !$this->get('user_lastvisit'))
{
$this->set('user_lastvisit', (integer) $this->get('user_currentvisit'));
$this->set('user_currentvisit', time());
$sql->update('user', "user_visits = user_visits + 1, user_lastvisit = ".$this->get('user_lastvisit').", user_currentvisit = ".$this->get('user_currentvisit')."{$update_ip} WHERE user_id='".$this->getId()."' ");
$sql->update('user', "user_visits = user_visits + 1, user_lastvisit = ".$this->get('user_lastvisit').", user_currentvisit = ".$this->get('user_currentvisit').$update_ip." WHERE user_id = ".$this->getId()." LIMIT 1 ");
}
else
{
$this->set('user_currentvisit', time());
$sql->update('user', "user_currentvisit = ".$this->get('user_currentvisit')."{$update_ip} WHERE user_id='".$this->getId()."' ");
$sql->update('user', "user_currentvisit = ".$this->get('user_currentvisit').$update_ip." WHERE user_id = ".$this->getId()." LIMIT 1 ");
}
}
}

View File

@@ -27,6 +27,7 @@ define("NU_LAN_7", "User social signup");
define("NU_LAN_8", "User views profile");
define("NU_LAN_9", "User edits profile");
define("NS_LAN_1", "Security Events");
define("NS_LAN_2", "IP banned for flooding site");
define("NS_LAN_3", "IP banned for multiple failed login attempts");
@@ -47,4 +48,5 @@ define("NF_LAN_2", "File uploaded by user");
define("LAN_NOTIFY_01", "Events");
define("NU_LAN_10", "User IP changed");