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:
@@ -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')
|
||||
|
||||
),
|
||||
|
||||
|
@@ -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 ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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");
|
||||
|
||||
|
Reference in New Issue
Block a user