1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-12 09:34:54 +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

@@ -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 ");
}
}
}