mirror of
https://github.com/e107inc/e107.git
synced 2025-08-03 21:27:25 +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_flood' => NS_LAN_2,
|
||||||
'user_ban_failed_login' => NS_LAN_3,
|
'user_ban_failed_login' => NS_LAN_3,
|
||||||
'user_profile_display' => NU_LAN_8,
|
'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();
|
$sql = e107::getDb();
|
||||||
$this->set('last_ip', $this->get('user_ip'));
|
$this->set('last_ip', $this->get('user_ip'));
|
||||||
$current_ip = e107::getIPHandler()->getIP(FALSE);
|
$current_ip = e107::getIPHandler()->getIP();
|
||||||
$update_ip = $this->get('user_ip' != $current_ip ? ", user_ip = '".$current_ip."'" : "");
|
$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);
|
$this->set('user_ip', $current_ip);
|
||||||
if($this->get('user_currentvisit') + 3600 < time() || !$this->get('user_lastvisit'))
|
if($this->get('user_currentvisit') + 3600 < time() || !$this->get('user_lastvisit'))
|
||||||
{
|
{
|
||||||
$this->set('user_lastvisit', (integer) $this->get('user_currentvisit'));
|
$this->set('user_lastvisit', (integer) $this->get('user_currentvisit'));
|
||||||
$this->set('user_currentvisit', time());
|
$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
|
else
|
||||||
{
|
{
|
||||||
$this->set('user_currentvisit', time());
|
$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_8", "User views profile");
|
||||||
define("NU_LAN_9", "User edits profile");
|
define("NU_LAN_9", "User edits profile");
|
||||||
|
|
||||||
|
|
||||||
define("NS_LAN_1", "Security Events");
|
define("NS_LAN_1", "Security Events");
|
||||||
define("NS_LAN_2", "IP banned for flooding site");
|
define("NS_LAN_2", "IP banned for flooding site");
|
||||||
define("NS_LAN_3", "IP banned for multiple failed login attempts");
|
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("LAN_NOTIFY_01", "Events");
|
||||||
|
|
||||||
|
define("NU_LAN_10", "User IP changed");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user