summaryrefslogtreecommitdiff
path: root/classes/userhelper.php
diff options
context:
space:
mode:
authorpowerivq <[email protected]>2022-08-31 14:52:42 -0700
committerpowerivq <[email protected]>2022-08-31 14:52:42 -0700
commit96595ca4c5800b392ee73d14eaa34f4d847a5577 (patch)
tree77f2d119e1d76b52077bf073771bcffb4d24f9cd /classes/userhelper.php
parent5fea1a7ea90796ef061c7ad991265b6d28fde3fe (diff)
Set user related sessions for single user mode
Diffstat (limited to 'classes/userhelper.php')
-rw-r--r--classes/userhelper.php26
1 files changed, 14 insertions, 12 deletions
diff --git a/classes/userhelper.php b/classes/userhelper.php
index e613465b9..4d9f30548 100644
--- a/classes/userhelper.php
+++ b/classes/userhelper.php
@@ -83,19 +83,15 @@ class UserHelper {
$user = ORM::for_table('ttrss_users')->find_one($user_id);
if ($user && $user->access_level != self::ACCESS_LEVEL_DISABLED) {
- $_SESSION["uid"] = $user_id;
+ self::set_session_for_user($user_id);
$_SESSION["auth_module"] = $auth_module;
$_SESSION["name"] = $user->login;
$_SESSION["access_level"] = $user->access_level;
- $_SESSION["csrf_token"] = bin2hex(get_random_bytes(16));
- $_SESSION["ip_address"] = UserHelper::get_user_ip();
$_SESSION["pwd_hash"] = $user->pwd_hash;
$user->last_login = Db::NOW();
$user->save();
- $_SESSION["last_login_update"] = time();
-
return true;
}
@@ -108,8 +104,7 @@ class UserHelper {
return false;
} else {
-
- $_SESSION["uid"] = 1;
+ self::set_session_for_user(1);
$_SESSION["name"] = "admin";
$_SESSION["access_level"] = self::ACCESS_LEVEL_ADMIN;
@@ -118,13 +113,20 @@ class UserHelper {
$_SESSION["auth_module"] = false;
- if (empty($_SESSION["csrf_token"]))
- $_SESSION["csrf_token"] = bin2hex(get_random_bytes(16));
+ return true;
+ }
+ }
- $_SESSION["ip_address"] = UserHelper::get_user_ip();
- $_SESSION["last_login_update"] = time();
+ static function set_session_for_user(int $owner_uid): void {
+ $_SESSION["uid"] = $owner_uid;
+ $_SESSION["last_login_update"] = time();
+ $_SESSION["ip_address"] = UserHelper::get_user_ip();
- return true;
+ if (empty($_SESSION["csrf_token"]))
+ $_SESSION["csrf_token"] = bin2hex(get_random_bytes(16));
+
+ if (Config::get_schema_version() >= 120) {
+ $_SESSION["language"] = get_pref(Prefs::USER_LANGUAGE, $owner_uid);
}
}