Require acceptance for space speak invites and add instant co-host promotion.
Deploy Ladill Meet / deploy (push) Successful in 40s
Deploy Ladill Meet / deploy (push) Successful in 40s
Remove duplicate host record button on desktop and split invite-to-speak from make co-host so listeners must accept before speaking while co-host is applied immediately. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -252,14 +252,70 @@ class MeetingRoomController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function promoteSpaceSpeaker(Request $request, Session $session, Participant $participant): JsonResponse
|
||||
public function inviteSpaceSpeaker(Request $request, Session $session, Participant $participant): JsonResponse
|
||||
{
|
||||
$actor = $this->currentParticipant($request, $session);
|
||||
abort_unless($participant->session_id === $session->id, 404);
|
||||
abort_unless($session->room->isSpace(), 404);
|
||||
abort_unless($actor->isHost() || ($request->user() && $request->user()->ownerRef() === $session->room->host_user_ref), 403);
|
||||
|
||||
$updated = app(SpaceService::class)->promoteToSpeaker($session->room, $participant);
|
||||
$updated = app(SpaceService::class)->inviteToSpeak($session->room, $participant);
|
||||
$avatars = ParticipantPresenter::avatarMap($session->participants()->get(), $session->room->host_user_ref);
|
||||
|
||||
return response()->json([
|
||||
'participant' => ParticipantPresenter::toArray($updated, $avatars, $session->room->host_user_ref),
|
||||
]);
|
||||
}
|
||||
|
||||
public function acceptSpaceSpeakInvitation(Request $request, Session $session): JsonResponse
|
||||
{
|
||||
$participant = $this->currentParticipant($request, $session);
|
||||
abort_unless($session->room->isSpace(), 404);
|
||||
|
||||
$updated = app(SpaceService::class)->acceptSpeakInvitation($session->room, $participant);
|
||||
$avatars = ParticipantPresenter::avatarMap($session->participants()->get(), $session->room->host_user_ref);
|
||||
|
||||
return response()->json([
|
||||
'participant' => ParticipantPresenter::toArray($updated, $avatars, $session->room->host_user_ref),
|
||||
]);
|
||||
}
|
||||
|
||||
public function declineSpaceSpeakInvitation(Request $request, Session $session): JsonResponse
|
||||
{
|
||||
$participant = $this->currentParticipant($request, $session);
|
||||
abort_unless($session->room->isSpace(), 404);
|
||||
|
||||
$updated = app(SpaceService::class)->declineSpeakInvitation($session->room, $participant);
|
||||
$avatars = ParticipantPresenter::avatarMap($session->participants()->get(), $session->room->host_user_ref);
|
||||
|
||||
return response()->json([
|
||||
'participant' => ParticipantPresenter::toArray($updated, $avatars, $session->room->host_user_ref),
|
||||
]);
|
||||
}
|
||||
|
||||
public function dismissSpaceSpeakInvitation(Request $request, Session $session, Participant $participant): JsonResponse
|
||||
{
|
||||
$actor = $this->currentParticipant($request, $session);
|
||||
abort_unless($participant->session_id === $session->id, 404);
|
||||
abort_unless($session->room->isSpace(), 404);
|
||||
abort_unless($actor->isHost() || ($request->user() && $request->user()->ownerRef() === $session->room->host_user_ref), 403);
|
||||
|
||||
$updated = app(SpaceService::class)->dismissSpeakInvitation($session->room, $participant);
|
||||
$avatars = ParticipantPresenter::avatarMap($session->participants()->get(), $session->room->host_user_ref);
|
||||
|
||||
return response()->json([
|
||||
'participant' => ParticipantPresenter::toArray($updated, $avatars, $session->room->host_user_ref),
|
||||
]);
|
||||
}
|
||||
|
||||
public function promoteSpaceCoHost(Request $request, Session $session, Participant $participant): JsonResponse
|
||||
{
|
||||
$actor = $this->currentParticipant($request, $session);
|
||||
abort_unless($participant->session_id === $session->id, 404);
|
||||
abort_unless($session->room->isSpace(), 404);
|
||||
abort_unless($actor->isHost() || ($request->user() && $request->user()->ownerRef() === $session->room->host_user_ref), 403);
|
||||
|
||||
$updated = app(SpaceService::class)->promoteToCoHost($session->room, $participant);
|
||||
$avatars = ParticipantPresenter::avatarMap($session->participants()->get(), $session->room->host_user_ref);
|
||||
|
||||
return response()->json([
|
||||
|
||||
Reference in New Issue
Block a user