Skip to content

Commit 43da625

Browse files
Merge pull request #9260 from Sesquipedalian/3.0/user_fixes
[3.0] Misc fixes for SMF\User
2 parents 4ace4cd + 33b1d95 commit 43da625

14 files changed

Lines changed: 43 additions & 27 deletions

Sources/Actions/AutoSuggest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use SMF\ActionInterface;
1919
use SMF\ActionRouter;
2020
use SMF\ActionTrait;
21+
use SMF\Config;
2122
use SMF\Db\DatabaseApi as Db;
2223
use SMF\IntegrationHook;
2324
use SMF\OutputTypeInterface;
@@ -136,6 +137,11 @@ public function member(): array
136137
],
137138
];
138139

140+
// Can't search for buddies if that feature is disabled.
141+
if (empty(Config::$modSettings['enable_buddylist'])) {
142+
unset($this->search_param['buddies']);
143+
}
144+
139145
// Find the member.
140146
$request = Db::$db->query(
141147
'SELECT id_member, real_name

Sources/Actions/BoardIndex.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public function execute(): void
8080

8181
// Set a few minor things.
8282
Utils::$context['show_stats'] = User::$me->allowedTo('view_stats') && !empty(Config::$modSettings['trackStats']);
83-
Utils::$context['show_buddies'] = !empty(User::$me->buddies);
83+
Utils::$context['show_buddies'] = !empty(User::$me->buddies) && !empty(Config::$modSettings['enable_buddylist']);
8484
Utils::$context['show_who'] = User::$me->allowedTo('who_view') && !empty(Config::$modSettings['who_enabled']);
8585

8686
// Retrieve the categories and boards.
@@ -436,7 +436,7 @@ public static function get(array $board_index_options): array
436436
$parent = Board::$loaded[$row_board['id_parent']] ?? null;
437437

438438
// Perhaps we are ignoring this board?
439-
$ignoreThisBoard = \in_array($row_board['id_board'], User::$me->ignoreboards);
439+
$ignoreThisBoard = !empty(Config::$modSettings['allow_ignore_boards']) && \in_array($row_board['id_board'], User::$me->ignoreboards);
440440
$row_board['is_read'] = !empty($row_board['is_read']) || $ignoreThisBoard ? '1' : '0';
441441

442442
if ($board_index_options['include_categories']) {

Sources/Actions/BuddyListToggle.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use SMF\ActionRouter;
2020
use SMF\ActionTrait;
2121
use SMF\Cache\CacheApi;
22+
use SMF\Config;
2223
use SMF\Db\DatabaseApi as Db;
2324
use SMF\ErrorHandler;
2425
use SMF\Routable;
@@ -61,7 +62,7 @@ public function execute(): void
6162
User::$me->isAllowedTo('profile_extra_own');
6263
User::$me->kickIfGuest();
6364

64-
if (empty($this->userReceiver)) {
65+
if (empty($this->userReceiver) || empty(Config::$modSettings['enable_buddylist'])) {
6566
ErrorHandler::fatalLang('no_access', false);
6667
}
6768

Sources/Actions/Calendar.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1511,7 +1511,10 @@ public static function cacheAdjustData(array &$cache_block, array &$params): voi
15111511
foreach ($cache_block['data']['calendar_events'] as $k => $event) {
15121512
// Remove events that the user may not see or wants to ignore.
15131513
if (
1514-
\in_array($event->id_board, User::$me->ignoreboards)
1514+
(
1515+
!empty(Config::$modSettings['allow_ignore_boards'])
1516+
&& \in_array($event->id_board, User::$me->ignoreboards)
1517+
)
15151518
|| (
15161519
\count(array_intersect(User::$me->groups, $event->allowed_groups)) === 0
15171520
&& !User::$me->allowedTo('admin_forum')

Sources/Actions/Display.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ protected function getWhoViewing(): void
861861
$link = '<a href="' . Config::$scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>';
862862
}
863863

864-
$is_buddy = \in_array($row['id_member'], User::$me->buddies);
864+
$is_buddy = !empty(Config::$modSettings['enable_buddylist']) && \in_array($row['id_member'], User::$me->buddies);
865865

866866
if ($is_buddy) {
867867
$link = '<strong>' . $link . '</strong>';

Sources/Actions/MessageIndex.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -870,7 +870,7 @@ protected function getWhoViewing(): void
870870
$link = '<a href="' . Config::$scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>';
871871
}
872872

873-
$is_buddy = \in_array($row['id_member'], User::$me->buddies);
873+
$is_buddy = !empty(Config::$modSettings['enable_buddylist']) && \in_array($row['id_member'], User::$me->buddies);
874874

875875
if ($is_buddy) {
876876
$link = '<strong>' . $link . '</strong>';

Sources/Actions/RequestMembers.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use SMF\ActionInterface;
1919
use SMF\ActionRouter;
2020
use SMF\ActionTrait;
21+
use SMF\Config;
2122
use SMF\Db\DatabaseApi as Db;
2223
use SMF\Routable;
2324
use SMF\User;
@@ -65,6 +66,11 @@ public function execute(): void
6566

6667
header('content-type: text/plain; charset=UTF-8');
6768

69+
// Can't search for buddies if that feature is disabled.
70+
if (empty(Config::$modSettings['enable_buddylist'])) {
71+
unset($_REQUEST['buddies']);
72+
}
73+
6874
$request = Db::$db->query(
6975
'SELECT real_name
7076
FROM {db_prefix}members

Sources/Actions/Search.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public function execute(): void
209209
}
210210
// User didn't select any boards, so select all except ignored and recycle boards.
211211
else {
212-
$board->selected = !$board->recycle && !\in_array($board->id, User::$me->ignoreboards);
212+
$board->selected = !$board->recycle && (empty(Config::$modSettings['allow_ignore_boards']) || !\in_array($board->id, User::$me->ignoreboards));
213213
}
214214

215215
if (!$board->selected && !$board->recycle) {

Sources/Logging.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ public static function getMembersOnlineStats(array $membersOnlineOptions): array
669669
}
670670

671671
// Buddies get counted and highlighted.
672-
$is_buddy = \in_array($row['id_member'], User::$me->buddies);
672+
$is_buddy = !empty(Config::$modSettings['enable_buddylist']) && \in_array($row['id_member'], User::$me->buddies);
673673

674674
if ($is_buddy) {
675675
$membersOnlineStats['num_buddies']++;

Sources/Parser.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,11 +230,11 @@ abstract class Parser
230230
public static string $locale;
231231

232232
/**
233-
* @var int
233+
* @var float
234234
*
235235
* User's time offset from UTC.
236236
*/
237-
public static int $time_offset;
237+
public static float $time_offset;
238238

239239
/**
240240
* @var string

0 commit comments

Comments
 (0)