Merge pull request #2967 from nextcloud/bugfix/2966/error-when-logout-while-in-a-call

Fix leaving a call on logout
This commit is contained in:
Joas Schilling 2020-02-20 13:34:25 +01:00 коммит произвёл GitHub
Родитель ffee1499f1 9103c99104
Коммит 0bb153fca8
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 5 добавлений и 1 удалений

Просмотреть файл

@ -103,12 +103,13 @@ class Listener {
/** @var IUser $user */
$user = $this->userSession->getUser();
/** @var string[] $sessionIds */
$sessionIds = $this->talkSession->getAllActiveSessions();
foreach ($sessionIds as $sessionId) {
$room = $this->manager->getRoomForSession($user->getUID(), $sessionId);
$participant = $room->getParticipant($user->getUID());
if ($participant->getInCallFlags() !== Participant::FLAG_DISCONNECTED) {
$room->changeInCall($sessionId, Participant::FLAG_DISCONNECTED);
$room->changeInCall($participant, Participant::FLAG_DISCONNECTED);
}
$room->leaveRoom($user->getUID(), $sessionId);
}

Просмотреть файл

@ -34,6 +34,9 @@ class TalkSession {
$this->session = $session;
}
/**
* @return string[]
*/
public function getAllActiveSessions(): array {
$sessions = $this->getValues('spreed-session');
return array_values($sessions);