allow anyone controll room option

This commit is contained in:
2026-08-27 15:41:21 +02:00
parent b2c1d67283
commit 72152e2d45
16 changed files with 328 additions and 11 deletions
@@ -0,0 +1,25 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\UpdateRoomPermissionsRequest;
use App\Models\Room;
use App\Services\Rooms\RoomPermissionService;
use Illuminate\Http\Response;
class RoomPermissionController extends Controller
{
public function __construct(
private readonly RoomPermissionService $roomPermissions,
) {}
public function __invoke(UpdateRoomPermissionsRequest $request, Room $room): Response
{
$this->roomPermissions->updateParticipantControls(
$room,
(bool) $request->validated('allow_participant_controls'),
);
return response()->noContent();
}
}
+5 -5
View File
@@ -16,7 +16,7 @@ class RoundController extends Controller
public function reset(Request $request, Room $room): Response
{
$this->ensureModerator($request, $room);
$this->ensureCanControlRound($request, $room);
$this->rounds->reset($room);
return response()->noContent();
@@ -24,7 +24,7 @@ class RoundController extends Controller
public function reveal(Request $request, Room $room): Response
{
$this->ensureModerator($request, $room);
$this->ensureCanControlRound($request, $room);
$this->rounds->reveal($room);
return response()->noContent();
@@ -32,20 +32,20 @@ class RoundController extends Controller
public function nextRound(Request $request, Room $room): Response
{
$this->ensureModerator($request, $room);
$this->ensureCanControlRound($request, $room);
$this->rounds->startNext($room);
return response()->noContent();
}
private function ensureModerator(Request $request, Room $room): void
private function ensureCanControlRound(Request $request, Room $room): void
{
$player = $request->attributes->get('currentPlayer');
abort_unless(
$player instanceof Player
&& $player->room_id === $room->id
&& $player->is_moderator,
&& ($player->is_moderator || $room->allow_participant_controls),
403,
);
}