From ccb001ca27388c0ca0e169efd76e830e38032aea Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 17 Jan 2024 13:53:01 +0700 Subject: [PATCH 1/6] Sending debug errors to us to Telegram bot (#1323) * Sending debug errors to us to Telegram bot * Update Dev.php * Updated * Apply fixes from StyleCI (#1325) Co-authored-by: StyleCI Bot --------- Co-authored-by: Yury Pikhtarev Co-authored-by: StyleCI Bot --- composer.json | 11 ++++--- composer.lock | 76 ++++++++++++++++++++++++++++++++++++++++----- library/defines.php | 6 ++++ src/Dev.php | 29 +++++++++++++++-- 4 files changed, 108 insertions(+), 14 deletions(-) diff --git a/composer.json b/composer.json index d6fc39deb..cf640d1af 100644 --- a/composer.json +++ b/composer.json @@ -37,15 +37,15 @@ }, "require": { "php": "^8.1", - "ext-mysqli": "*", - "ext-mbstring": "*", - "ext-json": "*", "ext-bcmath": "*", + "ext-ctype": "*", + "ext-curl": "*", "ext-intl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-mysqli": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "ext-curl": "*", - "ext-ctype": "*", "arokettu/bencode": "^4.1.0", "bugsnag/bugsnag": "^v3.29.1", "claviska/simpleimage": "^4.0", @@ -53,6 +53,7 @@ "filp/whoops": "^2.15", "gigablah/sphinxphp": "2.0.8", "google/recaptcha": "^1.3", + "jacklul/monolog-telegram": "^3.1", "josantonius/cookie": "^2.0", "longman/ip-tools": "1.2.1", "monolog/monolog": "^3.4", diff --git a/composer.lock b/composer.lock index bd56340c2..4d900302e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "29829118bcf2c44f41d12e79091d79e6", + "content-hash": "3e19fe76f513cea154195f8eb132bfa0", "packages": [ { "name": "arokettu/bencode", @@ -1037,6 +1037,67 @@ ], "time": "2023-12-03T20:05:35+00:00" }, + { + "name": "jacklul/monolog-telegram", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/jacklul/monolog-telegram.git", + "reference": "ec8674fbd280bbb369b5f48447259e44a92f39c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jacklul/monolog-telegram/zipball/ec8674fbd280bbb369b5f48447259e44a92f39c8", + "reference": "ec8674fbd280bbb369b5f48447259e44a92f39c8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "monolog/monolog": "^3.0", + "php": "^8.1" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^9.0", + "squizlabs/php_codesniffer": "^3.2", + "vlucas/phpdotenv": "^5.0" + }, + "suggest": { + "ext-curl": "cURL generally works better and is recommended" + }, + "type": "library", + "autoload": { + "psr-4": { + "jacklul\\MonologTelegramHandler\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jack'lul", + "email": "jacklulcat@gmail.com", + "homepage": "https://jacklul.github.io", + "role": "Developer" + } + ], + "description": "Monolog handler that sends logs through Telegram bot to any chat in HTML format", + "keywords": [ + "bot", + "log", + "logging", + "monolog", + "telegram" + ], + "support": { + "issues": "https://github.com/jacklul/monolog-telegram/issues", + "source": "https://github.com/jacklul/monolog-telegram" + }, + "time": "2023-11-21T18:26:36+00:00" + }, { "name": "josantonius/cookie", "version": "v2.0.6", @@ -2957,15 +3018,16 @@ "prefer-lowest": false, "platform": { "php": "^8.1", - "ext-mysqli": "*", - "ext-mbstring": "*", - "ext-json": "*", "ext-bcmath": "*", + "ext-ctype": "*", + "ext-curl": "*", "ext-intl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-mysqli": "*", "ext-xml": "*", - "ext-xmlwriter": "*", - "ext-curl": "*" + "ext-xmlwriter": "*" }, "platform-dev": [], - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.3.0" } diff --git a/library/defines.php b/library/defines.php index 21c244e69..d431d8d3d 100644 --- a/library/defines.php +++ b/library/defines.php @@ -13,6 +13,12 @@ if (!defined('BB_ROOT')) { // System define('APP_NAME', 'TorrentPier'); +define('DEBUG_TELEGRAM_SENDER', [ + // Send bug reports to developers + // Better not turn it off! But you can turn it off anyway for privacy reasons (It's easy, just remove this constant) + 'token' => '5956771201:AAFQZ4edS475VWdfdbeSuAvBnhzHnhg-hCc', + 'chat_id' => 669508248 +]); // Path (trailing slash '/' at the end: XX_PATH - without, XX_DIR - with) define('ADMIN_DIR', BB_PATH . '/admin'); diff --git a/src/Dev.php b/src/Dev.php index a34f88bc3..56d1fb9b8 100644 --- a/src/Dev.php +++ b/src/Dev.php @@ -21,6 +21,9 @@ use Whoops\Handler\PlainTextHandler; use Whoops\Handler\PrettyPageHandler; use Whoops\Run; +use jacklul\MonologTelegramHandler\TelegramHandler; +use jacklul\MonologTelegramHandler\TelegramFormatter; + use Exception; /** @@ -92,7 +95,11 @@ class Dev */ $loggingInConsole = new PlainTextHandler(); $loggingInConsole->loggerOnly(true); - $loggingInConsole->setLogger((new Logger(APP_NAME, [(new BrowserConsoleHandler())->setFormatter((new LineFormatter(null, null, true)))]))); + $loggingInConsole->setLogger((new Logger( + APP_NAME, + [(new BrowserConsoleHandler()) + ->setFormatter((new LineFormatter(null, null, true)))] + ))); $whoops->pushHandler($loggingInConsole); /** @@ -101,10 +108,28 @@ class Dev if (ini_get('log_errors') == 1) { $loggingInFile = new PlainTextHandler(); $loggingInFile->loggerOnly(true); - $loggingInFile->setLogger((new Logger(APP_NAME, [(new StreamHandler(WHOOPS_LOG_FILE))->setFormatter((new LineFormatter(null, null, true)))]))); + $loggingInFile->setLogger((new Logger( + APP_NAME, + [(new StreamHandler(WHOOPS_LOG_FILE)) + ->setFormatter((new LineFormatter(null, null, true)))] + ))); $whoops->pushHandler($loggingInFile); } + /** + * Send debug to us :D + */ + if (defined('DEBUG_TELEGRAM_SENDER') && is_array(DEBUG_TELEGRAM_SENDER)) { + $telegramSender = new PlainTextHandler(); + $telegramSender->loggerOnly(true); + $telegramSender->setLogger((new Logger( + APP_NAME, + [(new TelegramHandler(DEBUG_TELEGRAM_SENDER['token'], DEBUG_TELEGRAM_SENDER['chat_id'])) + ->setFormatter(new TelegramFormatter())] + ))); + $whoops->pushHandler($telegramSender); + } + $whoops->register(); } From 1a34072e985a27c1ff4404a5c2c45a0c5a838c98 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 17 Jan 2024 13:57:16 +0700 Subject: [PATCH 2/6] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c5732f28..facd5b78c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - Some enhancements in default template [\#1312](https://github.com/torrentpier/torrentpier/pull/1312) ([belomaxorka](https://github.com/belomaxorka)) - Set response code in some cases [\#1319](https://github.com/torrentpier/torrentpier/pull/1319) ([belomaxorka](https://github.com/belomaxorka)) - Fixed HTTP 500 while cron running in server-side [\#1321](https://github.com/torrentpier/torrentpier/pull/1321) ([belomaxorka](https://github.com/belomaxorka)) +- Sending debug errors to us 🌚 via Telegram bot [\#1323](https://github.com/torrentpier/torrentpier/pull/1323) ([belomaxorka](https://github.com/belomaxorka)) - Minor improvements [\#1306](https://github.com/torrentpier/torrentpier/pull/1306), [\#1307](https://github.com/torrentpier/torrentpier/pull/1307), [\#1308](https://github.com/torrentpier/torrentpier/pull/1308), [\#1315](https://github.com/torrentpier/torrentpier/pull/1315) ([belomaxorka](https://github.com/belomaxorka)) - Updated deps [\#1304](https://github.com/torrentpier/torrentpier/pull/1304), [\#1305](https://github.com/torrentpier/torrentpier/pull/1305) ([belomaxorka](https://github.com/belomaxorka)) From a46c40e1068f510c25061e0312a6bfb4f20b0ee5 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 19 Jan 2024 00:33:29 +0700 Subject: [PATCH 3/6] Some bugfixes (#1326) * Some bugfixes * Update CHANGELOG.md * Update functions_admin.php --- CHANGELOG.md | 1 + .../attach_mod/includes/functions_admin.php | 22 ------------------- library/includes/functions.php | 7 +++++- src/Legacy/Common/User.php | 19 ++++++++-------- 4 files changed, 16 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index facd5b78c..ca9bd0bd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Fixed HTTP 500 while cron running in server-side [\#1321](https://github.com/torrentpier/torrentpier/pull/1321) ([belomaxorka](https://github.com/belomaxorka)) - Sending debug errors to us 🌚 via Telegram bot [\#1323](https://github.com/torrentpier/torrentpier/pull/1323) ([belomaxorka](https://github.com/belomaxorka)) - Minor improvements [\#1306](https://github.com/torrentpier/torrentpier/pull/1306), [\#1307](https://github.com/torrentpier/torrentpier/pull/1307), [\#1308](https://github.com/torrentpier/torrentpier/pull/1308), [\#1315](https://github.com/torrentpier/torrentpier/pull/1315) ([belomaxorka](https://github.com/belomaxorka)) +- Some bugfixes [\#1326](https://github.com/torrentpier/torrentpier/pull/1326) ([belomaxorka](https://github.com/belomaxorka)) - Updated deps [\#1304](https://github.com/torrentpier/torrentpier/pull/1304), [\#1305](https://github.com/torrentpier/torrentpier/pull/1305) ([belomaxorka](https://github.com/belomaxorka)) ## [v2.4.0](https://github.com/torrentpier/torrentpier/tree/v2.4.0) (2024-01-01) diff --git a/library/attach_mod/includes/functions_admin.php b/library/attach_mod/includes/functions_admin.php index 340efb6fb..5f5f0a05b 100644 --- a/library/attach_mod/includes/functions_admin.php +++ b/library/attach_mod/includes/functions_admin.php @@ -245,25 +245,3 @@ function search_attachments($order_by, &$total_rows) return $attachments; } - -/** - * Perform limit statement on arrays - * - * @param $array - * @param $start - * @param $pagelimit - * @return array - */ -function limit_array($array, $start, $pagelimit) -{ - // array from start - start+pagelimit - $limit = (count($array) < ($start + $pagelimit)) ? count($array) : $start + $pagelimit; - - $limit_array = []; - - for ($i = $start; $i < $limit; $i++) { - $limit_array[] = $array[$i]; - } - - return $limit_array; -} diff --git a/library/includes/functions.php b/library/includes/functions.php index f1bd17224..19ce6f4ef 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -269,6 +269,11 @@ function auth($type, $forum_id, $ug_data, array $f_access = [], $group_perm = UG $auth = $auth_fields = $u_access = []; $add_auth_type_desc = ($forum_id != AUTH_LIST_ALL); + // Check forum existence + if ($add_auth_type_desc && !forum_exists($forum_id)) { + return []; + } + // // Get $auth_fields // @@ -304,7 +309,7 @@ function auth($type, $forum_id, $ug_data, array $f_access = [], $group_perm = UG } if (empty($f_access)) { - return []; + trigger_error(__FUNCTION__ . '(): empty $f_access', E_USER_ERROR); } // diff --git a/src/Legacy/Common/User.php b/src/Legacy/Common/User.php index 2c3821c92..de4b818d9 100644 --- a/src/Legacy/Common/User.php +++ b/src/Legacy/Common/User.php @@ -727,9 +727,9 @@ class User * @param $auth_type * @param string $return_as * - * @return array|bool|string + * @return array|string */ - public function get_excluded_forums($auth_type, $return_as = 'csv') + public function get_excluded_forums($auth_type, string $return_as = 'csv') { $excluded = []; @@ -754,14 +754,13 @@ class User } } - switch ($return_as) { - case 'csv': - return implode(',', $excluded); - case 'array': - return $excluded; - case 'flip': - return array_flip(explode(',', $excluded)); - } + return match ($return_as) { + 'csv' => implode(',', $excluded), + 'flip_csv' => implode(',', array_flip($excluded)), + 'array' => $excluded, + 'flip' => array_flip($excluded), + default => [], + }; } /** From a438031c68be5027a5b7322a5a3b849604cbea20 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 19 Jan 2024 15:27:53 +0700 Subject: [PATCH 4/6] Added support for fastly cdn (#1327) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added support for Fastly CDN Co-Authored-By: Cønstantine Kovalensky <45331093+kovalensky@users.noreply.github.com> * Update common.php Co-Authored-By: Cønstantine Kovalensky <45331093+kovalensky@users.noreply.github.com> --------- Co-authored-by: Cønstantine Kovalensky <45331093+kovalensky@users.noreply.github.com> --- common.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/common.php b/common.php index 5fa647ddd..be153b99f 100644 --- a/common.php +++ b/common.php @@ -41,9 +41,12 @@ if (!defined('BB_SCRIPT')) { header('X-Frame-Options: SAMEORIGIN'); date_default_timezone_set('UTC'); -// Cloudflare -if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { - $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP']; +// Set remote address +$allowedCDNs = ['HTTP_X_FORWARDED_FOR', 'HTTP_FASTLY_CLIENT_IP', 'HTTP_CF_CONNECTING_IP']; +foreach ($allowedCDNs as $allowedCDN) { + if (isset($_SERVER[$allowedCDN]) && filter_var($_SERVER[$allowedCDN], FILTER_VALIDATE_IP)) { + $_SERVER['REMOTE_ADDR'] = $allowedCDN; + } } // Get all constants From 7ee71887f259a68d867e2fdf161444b7df4ce2fe Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Fri, 19 Jan 2024 15:54:28 +0700 Subject: [PATCH 5/6] Minor improvements (#1328) * Minor improvements * Update CHANGELOG.md --- CHANGELOG.md | 3 ++- common.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca9bd0bd4..8381d64c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ **Merged pull requests:** - Release 2.4.1 🦉 ([belomaxorka](https://github.com/belomaxorka), [kovalensky](https://github.com/kovalensky)) +- Added support for fastly cdn [\#1327](https://github.com/torrentpier/torrentpier/pull/1327) ([belomaxorka](https://github.com/belomaxorka), [kovalensky](https://github.com/kovalensky)) - Used declensions for days in some cases [\#1310](https://github.com/torrentpier/torrentpier/pull/1310) ([belomaxorka](https://github.com/belomaxorka)) - Used datastore to show statistic for more performance [\#1309](https://github.com/torrentpier/torrentpier/pull/1309) ([belomaxorka](https://github.com/belomaxorka)) - Used `humn_size()` to count average of releases in tr_stats.php [\#1313](https://github.com/torrentpier/torrentpier/pull/1313) ([belomaxorka](https://github.com/belomaxorka)) @@ -13,7 +14,7 @@ - Set response code in some cases [\#1319](https://github.com/torrentpier/torrentpier/pull/1319) ([belomaxorka](https://github.com/belomaxorka)) - Fixed HTTP 500 while cron running in server-side [\#1321](https://github.com/torrentpier/torrentpier/pull/1321) ([belomaxorka](https://github.com/belomaxorka)) - Sending debug errors to us 🌚 via Telegram bot [\#1323](https://github.com/torrentpier/torrentpier/pull/1323) ([belomaxorka](https://github.com/belomaxorka)) -- Minor improvements [\#1306](https://github.com/torrentpier/torrentpier/pull/1306), [\#1307](https://github.com/torrentpier/torrentpier/pull/1307), [\#1308](https://github.com/torrentpier/torrentpier/pull/1308), [\#1315](https://github.com/torrentpier/torrentpier/pull/1315) ([belomaxorka](https://github.com/belomaxorka)) +- Minor improvements [\#1306](https://github.com/torrentpier/torrentpier/pull/1306), [\#1307](https://github.com/torrentpier/torrentpier/pull/1307), [\#1308](https://github.com/torrentpier/torrentpier/pull/1308), [\#1315](https://github.com/torrentpier/torrentpier/pull/1315), [\#1328](https://github.com/torrentpier/torrentpier/pull/1328) ([belomaxorka](https://github.com/belomaxorka)) - Some bugfixes [\#1326](https://github.com/torrentpier/torrentpier/pull/1326) ([belomaxorka](https://github.com/belomaxorka)) - Updated deps [\#1304](https://github.com/torrentpier/torrentpier/pull/1304), [\#1305](https://github.com/torrentpier/torrentpier/pull/1305) ([belomaxorka](https://github.com/belomaxorka)) diff --git a/common.php b/common.php index be153b99f..3ba700bd2 100644 --- a/common.php +++ b/common.php @@ -45,7 +45,7 @@ date_default_timezone_set('UTC'); $allowedCDNs = ['HTTP_X_FORWARDED_FOR', 'HTTP_FASTLY_CLIENT_IP', 'HTTP_CF_CONNECTING_IP']; foreach ($allowedCDNs as $allowedCDN) { if (isset($_SERVER[$allowedCDN]) && filter_var($_SERVER[$allowedCDN], FILTER_VALIDATE_IP)) { - $_SERVER['REMOTE_ADDR'] = $allowedCDN; + $_SERVER['REMOTE_ADDR'] = $_SERVER[$allowedCDN]; } } From 3b4fe8008bc08a683187769153715c87c08e532b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 21 Jan 2024 02:08:13 +0700 Subject: [PATCH 6/6] Fixed auth(): empty $f_access (#1329) * Fixed auth(): empty $f_access * Update functions.php * Update CHANGELOG.md * Updated * Update functions.php * Update functions.php --- CHANGELOG.md | 1 + admin/admin_user_search.php | 5 ++--- library/includes/functions.php | 9 ++++++++- src/Legacy/Torrent.php | 2 +- styles/templates/default/usercp_viewprofile.tpl | 2 +- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8381d64c6..42c621098 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ - Used `humn_size()` to count average of releases in tr_stats.php [\#1313](https://github.com/torrentpier/torrentpier/pull/1313) ([belomaxorka](https://github.com/belomaxorka)) - Some enhancements in default template [\#1312](https://github.com/torrentpier/torrentpier/pull/1312) ([belomaxorka](https://github.com/belomaxorka)) - Set response code in some cases [\#1319](https://github.com/torrentpier/torrentpier/pull/1319) ([belomaxorka](https://github.com/belomaxorka)) +- Fixed auth(): empty $f_access [\#1329](https://github.com/torrentpier/torrentpier/pull/1329) ([belomaxorka](https://github.com/belomaxorka)) - Fixed HTTP 500 while cron running in server-side [\#1321](https://github.com/torrentpier/torrentpier/pull/1321) ([belomaxorka](https://github.com/belomaxorka)) - Sending debug errors to us 🌚 via Telegram bot [\#1323](https://github.com/torrentpier/torrentpier/pull/1323) ([belomaxorka](https://github.com/belomaxorka)) - Minor improvements [\#1306](https://github.com/torrentpier/torrentpier/pull/1306), [\#1307](https://github.com/torrentpier/torrentpier/pull/1307), [\#1308](https://github.com/torrentpier/torrentpier/pull/1308), [\#1315](https://github.com/torrentpier/torrentpier/pull/1315), [\#1328](https://github.com/torrentpier/torrentpier/pull/1328) ([belomaxorka](https://github.com/belomaxorka)) diff --git a/admin/admin_user_search.php b/admin/admin_user_search.php index cd243869b..7bd2b1ec8 100644 --- a/admin/admin_user_search.php +++ b/admin/admin_user_search.php @@ -64,13 +64,12 @@ if (!isset($_REQUEST['dosearch'])) { } $forums = []; + $last_cat_id = -1; + $forums_list = ''; if (DB()->num_rows($result) != 0) { $template->assign_block_vars('forums_exist', []); - $last_cat_id = -1; - $forums_list = ''; - while ($row = DB()->sql_fetchrow($result)) { if ($row['cat_id'] != $last_cat_id) { $forums_list .= ''; diff --git a/library/includes/functions.php b/library/includes/functions.php index 19ce6f4ef..8de7c2e99 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -270,6 +270,9 @@ function auth($type, $forum_id, $ug_data, array $f_access = [], $group_perm = UG $add_auth_type_desc = ($forum_id != AUTH_LIST_ALL); // Check forum existence + if (!forum_exists()) { + return []; + } if ($add_auth_type_desc && !forum_exists($forum_id)) { return []; } @@ -1829,8 +1832,12 @@ function get_topic_title($topic_id) return $row['topic_title']; } -function forum_exists($forum_id): bool +function forum_exists($forum_id = null): bool { + if (!isset($forum_id)) { + return (bool)DB()->fetch_row("SELECT * FROM " . BB_FORUMS . " LIMIT 1"); + } + return (bool)DB()->fetch_row("SELECT forum_id FROM " . BB_FORUMS . " WHERE forum_id = $forum_id LIMIT 1"); } diff --git a/src/Legacy/Torrent.php b/src/Legacy/Torrent.php index 48ca026d9..a7f3a0c75 100644 --- a/src/Legacy/Torrent.php +++ b/src/Legacy/Torrent.php @@ -843,7 +843,7 @@ class Torrent * @param int|string $user_id * @return bool|string */ - public static function getPasskey($user_id) + public static function getPasskey(int|string $user_id): bool|string { if ($passkey = DB()->fetch_row("SELECT auth_key FROM " . BB_BT_USERS . " WHERE user_id = " . (int)$user_id . " LIMIT 1")) { return $passkey['auth_key']; diff --git a/styles/templates/default/usercp_viewprofile.tpl b/styles/templates/default/usercp_viewprofile.tpl index df5a72107..333d3fb51 100644 --- a/styles/templates/default/usercp_viewprofile.tpl +++ b/styles/templates/default/usercp_viewprofile.tpl @@ -398,7 +398,7 @@ ajax.callback.index_data = function(data) { [ {L_BT_PASSKEY}: {L_BT_PASSKEY_VIEW} ]