From b19d269a02ef3d15b1575f399c062cff587dff49 Mon Sep 17 00:00:00 2001
From: Joas Schilling <coding@schilljs.com>
Date: Wed, 11 Dec 2024 11:56:00 +0100
Subject: [PATCH] fix(guests): Don't force remove guests but leave it to the
 "purge logic"

Currently guests with a display name are not cleaned up, to keep
their name for chat messages and other activity.

Signed-off-by: Joas Schilling <coding@schilljs.com>
---
 lib/Controller/SignalingController.php | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/lib/Controller/SignalingController.php b/lib/Controller/SignalingController.php
index 2731d42ff77..d22f3b94b64 100644
--- a/lib/Controller/SignalingController.php
+++ b/lib/Controller/SignalingController.php
@@ -10,7 +10,6 @@
 
 use GuzzleHttp\Exception\ConnectException;
 use OCA\Talk\Config;
-use OCA\Talk\Events\AAttendeeRemovedEvent;
 use OCA\Talk\Events\BeforeSignalingResponseSentEvent;
 use OCA\Talk\Exceptions\ForbiddenException;
 use OCA\Talk\Exceptions\ParticipantNotFoundException;
@@ -924,15 +923,7 @@ private function backendRoom(array $roomRequest): DataResponse {
 				$this->sessionService->updateLastPing($participant->getSession(), $this->timeFactory->getTime());
 			}
 		} elseif ($action === 'leave') {
-			// Guests are removed completely as they don't reuse attendees,
-			// but this is only true for guests that joined directly.
-			// Emails are retained as their PIN needs to remain and stay
-			// valid.
-			if ($participant->getAttendee()->getActorType() === Attendee::ACTOR_GUESTS) {
-				$this->participantService->removeAttendee($room, $participant, AAttendeeRemovedEvent::REASON_LEFT);
-			} else {
-				$this->participantService->leaveRoomAsSession($room, $participant);
-			}
+			$this->participantService->leaveRoomAsSession($room, $participant);
 		}
 
 		$this->logger->debug('Room request to "{action}" room {token} by actor {actorType}/{actorId}', [