From 4e8e181d8c6b65951c8e77d9aa466eaca8149cfc Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 17 Mar 2023 21:50:29 +0700 Subject: [PATCH] Added passkey check in get_bt_userdata (#621) --- library/ajax/edit_user_profile.php | 5 +---- library/includes/functions.php | 15 +++++++++++---- library/includes/ucp/bonus.php | 5 ----- src/Legacy/Torrent.php | 6 +----- 4 files changed, 13 insertions(+), 18 deletions(-) diff --git a/library/ajax/edit_user_profile.php b/library/ajax/edit_user_profile.php index 981369347..859838c74 100644 --- a/library/ajax/edit_user_profile.php +++ b/library/ajax/edit_user_profile.php @@ -135,10 +135,7 @@ switch ($field) { $value = sprintf('%.0f', $value); $this->response['new_value'] = humn_size($value, null, null, ' '); - if (!$btu = get_bt_userdata($user_id)) { - \TorrentPier\Legacy\Torrent::generate_passkey($user_id, true); - $btu = get_bt_userdata($user_id); - } + $btu = get_bt_userdata($user_id); $btu[$field] = $value; $this->response['update_ids']['u_ratio'] = (string)get_bt_ratio($btu); break; diff --git a/library/includes/functions.php b/library/includes/functions.php index 7e9f65e82..328e8ef9a 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -817,8 +817,18 @@ function get_bt_userdata($user_id) GROUP BY bt.user_id LIMIT 1 "); + + if (empty($btu)) { + if (!\TorrentPier\Legacy\Torrent::generate_passkey($user_id, true)) { + bb_simple_die('Could not generate passkey'); + } + + $btu = get_bt_userdata($user_id); + } + CACHE('bb_cache')->set('btu_' . $user_id, $btu, 300); } + return $btu; } @@ -834,10 +844,7 @@ function show_bt_userdata($user_id) { global $lang, $template; - if (!$btu = get_bt_userdata($user_id)) { - \TorrentPier\Legacy\Torrent::generate_passkey($user_id, true); - $btu = get_bt_userdata($user_id); - } + $btu = get_bt_userdata($user_id); $template->assign_vars(array( 'SHOW_BT_USERDATA' => true, diff --git a/library/includes/ucp/bonus.php b/library/includes/ucp/bonus.php index fcfb17608..12f679995 100644 --- a/library/includes/ucp/bonus.php +++ b/library/includes/ucp/bonus.php @@ -26,11 +26,6 @@ if (isset($_POST['bonus_id'])) { $btu = get_bt_userdata($user_id); - if (empty($btu)) { - \TorrentPier\Legacy\Torrent::generate_passkey($user_id, true); - $btu = get_bt_userdata($user_id); - } - $upload = $upload_row[$id] * 1024 * 1024 * 1024; $points = $price_row[$id]; diff --git a/src/Legacy/Torrent.php b/src/Legacy/Torrent.php index e7eb33b17..cf61b345a 100644 --- a/src/Legacy/Torrent.php +++ b/src/Legacy/Torrent.php @@ -466,12 +466,8 @@ class Torrent if ($bt_userdata = get_bt_userdata($user_id)) { $passkey_val = $bt_userdata['auth_key']; - } - if (!$passkey_val) { - if (!$passkey_val = self::generate_passkey($user_id)) { - bb_simple_die('Could not generate passkey'); - } elseif ($bb_cfg['ocelot']['enabled']) { + if ($bb_cfg['ocelot']['enabled']) { self::ocelot_update_tracker('add_user', array('id' => $user_id, 'passkey' => $passkey_val)); } }