|
53 | 53 | use OCP\AppFramework\Http; |
54 | 54 | use OCP\AppFramework\Http\Attribute\NoAdminRequired; |
55 | 55 | use OCP\AppFramework\Http\Attribute\PublicPage; |
| 56 | +use OCP\AppFramework\Http\Attribute\RequestHeader; |
56 | 57 | use OCP\AppFramework\Http\Attribute\UserRateLimit; |
57 | 58 | use OCP\AppFramework\Http\DataResponse; |
58 | 59 | use OCP\AppFramework\Services\IAppConfig; |
@@ -215,6 +216,7 @@ protected function parseCommentToResponse(IComment $comment, ?Message $parentMes |
215 | 216 | #[RequireParticipant] |
216 | 217 | #[RequirePermission(permission: RequirePermission::CHAT)] |
217 | 218 | #[RequireReadWriteConversation] |
| 219 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
218 | 220 | public function sendMessage(string $message, string $actorDisplayName = '', string $referenceId = '', int $replyTo = 0, bool $silent = false): DataResponse { |
219 | 221 | if ($this->room->isFederatedConversation()) { |
220 | 222 | /** @var \OCA\Talk\Federation\Proxy\TalkV1\Controller\ChatController $proxy */ |
@@ -392,6 +394,7 @@ public function shareObjectToChat(string $objectType, string $objectId, string $ |
392 | 394 | #[PublicPage] |
393 | 395 | #[RequireModeratorOrNoLobby] |
394 | 396 | #[RequireParticipant] |
| 397 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
395 | 398 | public function receiveMessages(int $lookIntoFuture, |
396 | 399 | int $limit = 100, |
397 | 400 | int $lastKnownMessageId = 0, |
@@ -749,6 +752,7 @@ protected function prepareCommentsAsDataResponse(array $comments, int $lastCommo |
749 | 752 | #[PublicPage] |
750 | 753 | #[RequireModeratorOrNoLobby] |
751 | 754 | #[RequireParticipant] |
| 755 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
752 | 756 | public function getMessageContext( |
753 | 757 | int $messageId, |
754 | 758 | int $limit = 50): DataResponse { |
@@ -839,6 +843,7 @@ protected function loadSelfReactions(array $messages, array $commentIdToIndex): |
839 | 843 | #[RequireAuthenticatedParticipant] |
840 | 844 | #[RequirePermission(permission: RequirePermission::CHAT)] |
841 | 845 | #[RequireReadWriteConversation] |
| 846 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
842 | 847 | public function deleteMessage(int $messageId): DataResponse { |
843 | 848 | if ($this->room->isFederatedConversation()) { |
844 | 849 | /** @var \OCA\Talk\Federation\Proxy\TalkV1\Controller\ChatController $proxy */ |
@@ -931,6 +936,7 @@ public function deleteMessage(int $messageId): DataResponse { |
931 | 936 | #[RequireAuthenticatedParticipant] |
932 | 937 | #[RequirePermission(permission: RequirePermission::CHAT)] |
933 | 938 | #[RequireReadWriteConversation] |
| 939 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
934 | 940 | public function editMessage(int $messageId, string $message): DataResponse { |
935 | 941 | if ($this->room->isFederatedConversation()) { |
936 | 942 | /** @var \OCA\Talk\Federation\Proxy\TalkV1\Controller\ChatController $proxy */ |
@@ -1037,6 +1043,7 @@ public function editMessage(int $messageId, string $message): DataResponse { |
1037 | 1043 | #[RequireModeratorOrNoLobby] |
1038 | 1044 | #[RequireLoggedInParticipant] |
1039 | 1045 | #[UserRateLimit(limit: 60, period: 3600)] |
| 1046 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
1040 | 1047 | public function setReminder(int $messageId, int $timestamp): DataResponse { |
1041 | 1048 | try { |
1042 | 1049 | // FIXME fail 400 when reminder is after expiration |
@@ -1071,6 +1078,7 @@ public function setReminder(int $messageId, int $timestamp): DataResponse { |
1071 | 1078 | #[NoAdminRequired] |
1072 | 1079 | #[RequireModeratorOrNoLobby] |
1073 | 1080 | #[RequireLoggedInParticipant] |
| 1081 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
1074 | 1082 | public function getReminder(int $messageId): DataResponse { |
1075 | 1083 | try { |
1076 | 1084 | $this->validateMessageExists($messageId); |
@@ -1104,6 +1112,7 @@ public function getReminder(int $messageId): DataResponse { |
1104 | 1112 | #[NoAdminRequired] |
1105 | 1113 | #[RequireModeratorOrNoLobby] |
1106 | 1114 | #[RequireLoggedInParticipant] |
| 1115 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
1107 | 1116 | public function deleteReminder(int $messageId): DataResponse { |
1108 | 1117 | try { |
1109 | 1118 | $this->validateMessageExists($messageId); |
@@ -1290,6 +1299,7 @@ public function clearHistory(): DataResponse { |
1290 | 1299 | #[FederationSupported] |
1291 | 1300 | #[PublicPage] |
1292 | 1301 | #[RequireAuthenticatedParticipant] |
| 1302 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
1293 | 1303 | public function setReadMarker(?int $lastReadMessage = null): DataResponse { |
1294 | 1304 | $setToMessage = $lastReadMessage ?? $this->room->getLastMessageId(); |
1295 | 1305 | if ($setToMessage === 0) { |
@@ -1339,6 +1349,7 @@ public function setReadMarker(?int $lastReadMessage = null): DataResponse { |
1339 | 1349 | #[FederationSupported] |
1340 | 1350 | #[PublicPage] |
1341 | 1351 | #[RequireAuthenticatedParticipant] |
| 1352 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
1342 | 1353 | public function markUnread(): DataResponse { |
1343 | 1354 | if ($this->room->isFederatedConversation()) { |
1344 | 1355 | /** @var \OCA\Talk\Federation\Proxy\TalkV1\Controller\ChatController $proxy */ |
@@ -1515,6 +1526,7 @@ protected function getMessagesForRoom(array $messageIds): array { |
1515 | 1526 | #[RequireParticipant] |
1516 | 1527 | #[RequirePermission(permission: RequirePermission::CHAT)] |
1517 | 1528 | #[RequireReadWriteConversation] |
| 1529 | + #[RequestHeader(name: 'x-nextcloud-federation', description: 'Set to 1 when the request is performed by another Nextcloud Server to indicate a federation request', indirect: true)] |
1518 | 1530 | public function mentions(string $search, int $limit = 20, bool $includeStatus = false): DataResponse { |
1519 | 1531 | if ($this->room->isFederatedConversation()) { |
1520 | 1532 | /** @var \OCA\Talk\Federation\Proxy\TalkV1\Controller\ChatController $proxy */ |
|
0 commit comments