diff options
author | powerivq <[email protected]> | 2022-08-31 14:52:42 -0700 |
---|---|---|
committer | powerivq <[email protected]> | 2022-08-31 14:52:42 -0700 |
commit | 96595ca4c5800b392ee73d14eaa34f4d847a5577 (patch) | |
tree | 77f2d119e1d76b52077bf073771bcffb4d24f9cd /classes/userhelper.php | |
parent | 5fea1a7ea90796ef061c7ad991265b6d28fde3fe (diff) |
Set user related sessions for single user mode
Diffstat (limited to 'classes/userhelper.php')
-rw-r--r-- | classes/userhelper.php | 26 |
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); } } |