From 319991978429ef53c7b0e6b6a0e654ec9552f65c Mon Sep 17 00:00:00 2001 From: bakaneko Date: Fri, 13 Sep 2024 12:34:38 +0900 Subject: [PATCH 1/4] filter out restricted user from room scores --- .../Multiplayer/Rooms/Playlist/ScoresController.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php b/app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php index 97adef7b84b..52c0ec6ed0a 100644 --- a/app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php +++ b/app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php @@ -53,7 +53,12 @@ public function index($roomId, $playlistId) $limit = clamp(get_int($params['limit'] ?? null) ?? 50, 1, 50); $cursorHelper = PlaylistItemUserHighScore::makeDbCursorHelper($params['sort'] ?? null); - $highScoresQuery = $playlist->highScores()->whereHas('scoreLink'); + $highScoresQuery = $playlist + ->highScores() + ->whereHas('user', function ($userQuery) { + $userQuery->default(); + }) + ->whereHas('scoreLink'); [$highScores, $hasMore] = $highScoresQuery ->clone() From 542fefcc43c7a13cf1eb7af480f3139b892fe659 Mon Sep 17 00:00:00 2001 From: bakaneko Date: Fri, 13 Sep 2024 12:45:28 +0900 Subject: [PATCH 2/4] add relation --- app/Models/Multiplayer/PlaylistItemUserHighScore.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Models/Multiplayer/PlaylistItemUserHighScore.php b/app/Models/Multiplayer/PlaylistItemUserHighScore.php index ffca75b25d2..9dc67a5d6a1 100644 --- a/app/Models/Multiplayer/PlaylistItemUserHighScore.php +++ b/app/Models/Multiplayer/PlaylistItemUserHighScore.php @@ -7,6 +7,7 @@ use App\Models\Model; use App\Models\Traits\WithDbCursorHelper; +use App\Models\User; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -130,4 +131,9 @@ public function updateWithScoreLink(ScoreLink $scoreLink): bool 'total_score' => $score->total_score, ])->save(); } + + public function user(): BelongsTo + { + return $this->belongsTo(User::class, 'user_id'); + } } From 26481a1ce2e857ceea1870a8754e3411b98cb048 Mon Sep 17 00:00:00 2001 From: bakaneko Date: Fri, 13 Sep 2024 17:18:25 +0900 Subject: [PATCH 3/4] move relation --- app/Models/Multiplayer/PlaylistItemUserHighScore.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Models/Multiplayer/PlaylistItemUserHighScore.php b/app/Models/Multiplayer/PlaylistItemUserHighScore.php index 9dc67a5d6a1..6b9fed96ecc 100644 --- a/app/Models/Multiplayer/PlaylistItemUserHighScore.php +++ b/app/Models/Multiplayer/PlaylistItemUserHighScore.php @@ -107,6 +107,11 @@ public function scoreLink() return $this->belongsTo(ScoreLink::class, 'score_id'); } + public function user(): BelongsTo + { + return $this->belongsTo(User::class, 'user_id'); + } + public function scopePassing(Builder $query): Builder { return $query->where('total_score', '>', 0); @@ -131,9 +136,4 @@ public function updateWithScoreLink(ScoreLink $scoreLink): bool 'total_score' => $score->total_score, ])->save(); } - - public function user(): BelongsTo - { - return $this->belongsTo(User::class, 'user_id'); - } } From da158ec0433d2efb23889eae3e74c178e115f05b Mon Sep 17 00:00:00 2001 From: bakaneko Date: Fri, 13 Sep 2024 17:18:55 +0900 Subject: [PATCH 4/4] Update app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php Co-authored-by: Edho Arief --- .../Multiplayer/Rooms/Playlist/ScoresController.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php b/app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php index 52c0ec6ed0a..726ffde3183 100644 --- a/app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php +++ b/app/Http/Controllers/Multiplayer/Rooms/Playlist/ScoresController.php @@ -55,9 +55,7 @@ public function index($roomId, $playlistId) $highScoresQuery = $playlist ->highScores() - ->whereHas('user', function ($userQuery) { - $userQuery->default(); - }) + ->whereHas('user', fn ($userQuery) => $userQuery->default()) ->whereHas('scoreLink'); [$highScores, $hasMore] = $highScoresQuery