зеркало из https://github.com/nextcloud/spreed.git
Fix participant sessions not sent to the HPB
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
This commit is contained in:
Родитель
d523b4e622
Коммит
d9f3ed06b8
|
@ -224,17 +224,11 @@ class Listener {
|
|||
|
||||
$sessionIds = [];
|
||||
|
||||
$sessionService = Server::get(SessionService::class);
|
||||
$sessions = $sessionService->getAllSessionsForAttendee($event->getParticipant()->getAttendee());
|
||||
$sessions = $event->getSessions();
|
||||
foreach ($sessions as $session) {
|
||||
$sessionIds[] = $session->getSessionId();
|
||||
}
|
||||
|
||||
if ($event->getParticipant()->getSession()) {
|
||||
$sessionIds[] = $event->getParticipant()->getSession()->getSessionId();
|
||||
$notifier->roomSessionsRemoved($event->getRoom(), $sessionIds);
|
||||
}
|
||||
|
||||
if (!empty($sessionIds)) {
|
||||
$notifier->roomSessionsRemoved($event->getRoom(), $sessionIds);
|
||||
}
|
||||
|
|
|
@ -329,6 +329,39 @@ class BackendNotifierTest extends TestCase {
|
|||
]);
|
||||
}
|
||||
|
||||
public function testRoomDisinviteOnRemovalOfGuest() {
|
||||
$roomService = $this->createMock(RoomService::class);
|
||||
$roomService->method('verifyPassword')
|
||||
->willReturn(['result' => true, 'url' => '']);
|
||||
|
||||
$room = $this->manager->createRoom(Room::TYPE_PUBLIC);
|
||||
$participant = $this->participantService->joinRoomAsNewGuest($roomService, $room, '');
|
||||
$this->controller->clearRequests();
|
||||
$this->participantService->removeAttendee($room, $participant, Room::PARTICIPANT_REMOVED);
|
||||
|
||||
$this->assertMessageWasSent($room, [
|
||||
'type' => 'disinvite',
|
||||
'disinvite' => [
|
||||
'sessionids' => [
|
||||
$participant->getSession()->getSessionId(),
|
||||
],
|
||||
'alluserids' => [
|
||||
],
|
||||
'properties' => [
|
||||
'name' => $room->getDisplayName(''),
|
||||
'type' => $room->getType(),
|
||||
'lobby-state' => Webinary::LOBBY_NONE,
|
||||
'lobby-timer' => null,
|
||||
'read-only' => Room::READ_WRITE,
|
||||
'listable' => Room::LISTABLE_NONE,
|
||||
'active-since' => null,
|
||||
'sip-enabled' => 0,
|
||||
'participant-list' => 'refresh',
|
||||
],
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
public function testNoRoomDisinviteOnLeaveOfNormalUser() {
|
||||
/** @var IUser|MockObject $testUser */
|
||||
$testUser = $this->createMock(IUser::class);
|
||||
|
|
Загрузка…
Ссылка в новой задаче