Skip to content

Commit

Permalink
Merge pull request ppy#11743 from nanaya/multiplayer-join-room
Browse files Browse the repository at this point in the history
Require multiplayer api to join multiplayer room
  • Loading branch information
peppy authored Dec 20, 2024
2 parents 489f9e0 + c67c6ce commit 4ac7d36
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 8 deletions.
10 changes: 3 additions & 7 deletions app/Singletons/OsuAuthorize.php
Original file line number Diff line number Diff line change
Expand Up @@ -1027,7 +1027,7 @@ public function checkChatChannelRead(?User $user, Channel $channel): string
* @return string
* @throws AuthorizationCheckException
*/
public function checkChatChannelJoin(?User $user, Channel $channel): string
public function checkChatChannelJoin(?User $user, Channel $channel): ?string
{
$prefix = 'chat.';

Expand All @@ -1039,13 +1039,9 @@ public function checkChatChannelJoin(?User $user, Channel $channel): string

$this->ensureCleanRecord($user, $prefix);

// This check is only for when joining the channel directly; joining via the Room
// will always add the user to the channel.
// joining multiplayer room is done through room endpoint
if ($channel->isMultiplayer()) {
$room = Room::hasParticipated($user)->find($channel->room_id);
if ($room !== null) {
return 'ok';
}
return null;
}

// allow joining of 'tournament' matches (for lazer/tournament client)
Expand Down
2 changes: 1 addition & 1 deletion tests/Controllers/Chat/ChannelsControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ public function testChannelJoinMultiplayerWhenParticipated()
'user' => $this->user->getKey(),
]));

$request->assertStatus(200)->assertJsonFragment(['channel_id' => $scoreLink->playlistItem->room->channel_id, 'type' => Channel::TYPES['multiplayer']]);
$request->assertStatus(403);
}

//endregion
Expand Down

0 comments on commit 4ac7d36

Please sign in to comment.