diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Chat/Parser/SystemMessage.php | 10 | ||||
-rw-r--r-- | lib/Federation/Proxy/TalkV1/Controller/ChatController.php | 6 | ||||
-rw-r--r-- | lib/Federation/Proxy/TalkV1/ProxyRequest.php | 5 |
3 files changed, 18 insertions, 3 deletions
diff --git a/lib/Chat/Parser/SystemMessage.php b/lib/Chat/Parser/SystemMessage.php index 645e0e147..84185708f 100644 --- a/lib/Chat/Parser/SystemMessage.php +++ b/lib/Chat/Parser/SystemMessage.php @@ -368,6 +368,11 @@ class SystemMessage implements IEventListener { if ($parsedParameters['federated_user']['id'] === $parsedParameters['actor']['id']) { $parsedMessage = $this->l->t('You accepted the invitation'); } + } elseif ($this->isCurrentParticipantChangedUser($currentActorType, $currentActorId, $parsedParameters['federated_user'])) { + $parsedMessage = $this->l->t('{actor} invited you'); + if ($cliIsActor) { + $parsedMessage = $this->l->t('An administrator invited you'); + } } elseif ($cliIsActor) { $parsedMessage = $this->l->t('An administrator invited {federated_user}'); } elseif ($parsedParameters['federated_user']['id'] === $parsedParameters['actor']['id']) { @@ -378,6 +383,11 @@ class SystemMessage implements IEventListener { $parsedMessage = $this->l->t('{actor} removed {federated_user}'); if ($currentUserIsActor) { $parsedMessage = $this->l->t('You removed {federated_user}'); + } elseif ($this->isCurrentParticipantChangedUser($currentActorType, $currentActorId, $parsedParameters['federated_user'])) { + $parsedMessage = $this->l->t('{actor} removed you'); + if ($cliIsActor) { + $parsedMessage = $this->l->t('An administrator removed you'); + } } elseif ($cliIsActor) { $parsedMessage = $this->l->t('An administrator removed {federated_user}'); } elseif ($parsedParameters['federated_user']['id'] === $parsedParameters['actor']['id']) { diff --git a/lib/Federation/Proxy/TalkV1/Controller/ChatController.php b/lib/Federation/Proxy/TalkV1/Controller/ChatController.php index 4ceb5a4a3..a601166d1 100644 --- a/lib/Federation/Proxy/TalkV1/Controller/ChatController.php +++ b/lib/Federation/Proxy/TalkV1/Controller/ChatController.php @@ -371,14 +371,14 @@ class ChatController { * * 200: List of mention suggestions returned */ - public function setReadMarker(Room $room, Participant $participant, string $responseFormat, int $lastReadMessage): DataResponse { + public function setReadMarker(Room $room, Participant $participant, string $responseFormat, ?int $lastReadMessage): DataResponse { $proxy = $this->proxy->post( $participant->getAttendee()->getInvitedCloudId(), $participant->getAttendee()->getAccessToken(), $room->getRemoteServer() . '/ocs/v2.php/apps/spreed/api/v1/chat/' . $room->getRemoteToken() . '/read', - [ + $lastReadMessage !== null ? [ 'lastReadMessage' => $lastReadMessage, - ], + ] : [], ); /** @var TalkRoom $data */ diff --git a/lib/Federation/Proxy/TalkV1/ProxyRequest.php b/lib/Federation/Proxy/TalkV1/ProxyRequest.php index 548553867..ca21dabea 100644 --- a/lib/Federation/Proxy/TalkV1/ProxyRequest.php +++ b/lib/Federation/Proxy/TalkV1/ProxyRequest.php @@ -35,6 +35,8 @@ use OCP\AppFramework\Http; use OCP\Http\Client\IClientService; use OCP\Http\Client\IResponse; use OCP\IConfig; +use OCP\IUserSession; +use OCP\L10N\IFactory; use Psr\Log\LoggerInterface; use SensitiveParameter; @@ -43,6 +45,8 @@ class ProxyRequest { protected IConfig $config, protected IClientService $clientService, protected LoggerInterface $logger, + protected IFactory $l10nFactory, + protected IUserSession $userSession, ) { } @@ -72,6 +76,7 @@ class ProxyRequest { 'Accept' => 'application/json', 'X-Nextcloud-Federation' => 'true', 'OCS-APIRequest' => 'true', + 'Accept-Language' => $this->l10nFactory->getUserLanguage($this->userSession->getUser()), ], 'timeout' => 5, ]; |