summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Chat/Parser/SystemMessage.php10
-rw-r--r--lib/Federation/Proxy/TalkV1/Controller/ChatController.php6
-rw-r--r--lib/Federation/Proxy/TalkV1/ProxyRequest.php5
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,
];