Refactor user class to store user information internally

This commit is contained in:
H.Rouatbi
2024-10-05 20:23:44 +01:00
parent 291604dbd9
commit 552423c700
2 changed files with 74 additions and 51 deletions

View File

@@ -16,6 +16,12 @@ if (! defined('IN_COMMON')) {
class usrcp
{
private $user_id = -1;
private $group_id = 2;
private $user_name = null;
private $user_mail = null;
private $last_visit = null;
public function data($name, $pass, $hashed = false, $expire = 86400, $loginadm = false)
{
//expire
@@ -57,8 +63,8 @@ class usrcp
global $SQL, $dbprefix, $config, $userinfo;
$userinfo = [
'id' => -1,
'group_id' => 2,
'id' => $this->user_id,
'group_id' => $this->group_id,
];
$query = [
@@ -117,6 +123,12 @@ class usrcp
//all user fileds info
$userinfo = $row;
$this->user_id = $row['id'];
$this->group_id = $row['group_id'];
$this->user_name = $row['name'];
$this->user_mail = $row['mail'];
$this->last_visit = $row['last_visit'];
$user_y = base64_encode(serialize(['id'=>$row['id'], 'name'=>$row['name'], 'mail'=>$row['mail'], 'last_visit'=>$row['last_visit']]));
if (! $hashed && ! $loginadm) {
@@ -126,9 +138,10 @@ class usrcp
//if last visit > 1 minute then update it
if (empty($row['last_visit']) || time() - $row['last_visit'] > 60) {
$this->last_visit = time();
$update_last_visit = [
'UPDATE' => "{$dbprefix}users",
'SET' => 'last_visit=' . time(),
'SET' => 'last_visit=' . $this->last_visit,
'WHERE' => 'id=' . intval($row['id'])
];
@@ -142,9 +155,6 @@ class usrcp
unset($pass);
return true;
} else {
//guest
define('USER_ID', $userinfo['id']);
define('GROUP_ID', $userinfo['group_id']);
return false;
}
}
@@ -182,7 +192,7 @@ class usrcp
{
is_array($plugin_run_result = Plugins::getInstance()->run('id_func_usr_class', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook
return defined('USER_ID') ? USER_ID : false;
return $this->user_id;
}
// group ids
@@ -190,7 +200,7 @@ class usrcp
{
is_array($plugin_run_result = Plugins::getInstance()->run('group_id_func_usr_class', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook
return defined('GROUP_ID') ? GROUP_ID : false;
return $this->group_id;
}
// user name
@@ -198,7 +208,7 @@ class usrcp
{
is_array($plugin_run_result = Plugins::getInstance()->run('name_func_usr_class', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook
return defined('USER_NAME') ? USER_NAME : false;
return $this->user_name;
}
// user mail
@@ -206,7 +216,15 @@ class usrcp
{
is_array($plugin_run_result = Plugins::getInstance()->run('mail_func_usr_class', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook
return defined('USER_MAIL') ? USER_MAIL : false;
return $this->user_mail;
}
// last visit
public function last_visit()
{
is_array($plugin_run_result = Plugins::getInstance()->run('last_visit_func_usr_class', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook
return $this->last_visit;
}
// logout func
@@ -219,6 +237,12 @@ class usrcp
$this->logout_cp();
}
$this->user_id = -1;
$this->group_id = 2;
$this->user_name = null;
$this->user_mail = null;
$this->last_visit = null;
//is ther any cookies
$this->kleeja_set_cookie('ulogu', '', time() - 31536000);//31536000 = year
@@ -376,8 +400,8 @@ class usrcp
//to make sure
$userinfo = [
'id' => -1,
'group_id' => 2,
'id' => $this->user_id,
'group_id' => $this->group_id,
];
//if login up
@@ -399,19 +423,15 @@ class usrcp
if ($user_data == false) {
$this->logout();
} else {
define('USER_ID', $userinfo['id']);
define('GROUP_ID', $userinfo['group_id']);
define('USER_NAME', $userinfo['name']);
define('USER_MAIL', $userinfo['mail']);
define('LAST_VISIT', $userinfo['last_visit']);
$this->user_id = $userinfo['id'];
$this->group_id = $userinfo['group_id'];
$this->user_name = $userinfo['name'];
$this->user_mail = $userinfo['mail'];
$this->last_visit = $userinfo['last_visit'];
return $user_data;
}
} else {
//guest
define('USER_ID', $userinfo['id']);
define('GROUP_ID', $userinfo['group_id']);
}
return false; //nothing
}
}
}