diff --git a/lib/Controller/ChatController.php b/lib/Controller/ChatController.php index ea46fb89bf53..95b5b1521f56 100644 --- a/lib/Controller/ChatController.php +++ b/lib/Controller/ChatController.php @@ -845,13 +845,15 @@ public function editMessage(int $messageId, string $message): DataResponse { return new DataResponse([], Http::STATUS_METHOD_NOT_ALLOWED); } - $maxAge = $this->timeFactory->getDateTime(); - $maxAge->sub(new \DateInterval('P1D')); - if ($comment->getCreationDateTime() < $maxAge) { - // Message is too old - return new DataResponse(['error' => 'age'], Http::STATUS_BAD_REQUEST); + if ($this->room->getType() !== Room::TYPE_NOTE_TO_SELF) { + $maxAge = $this->timeFactory->getDateTime(); + $maxAge->sub(new \DateInterval('P1D')); + if ($comment->getCreationDateTime() < $maxAge) { + // Message is too old + return new DataResponse(['error' => 'age'], Http::STATUS_BAD_REQUEST); + } } - + try { $systemMessageComment = $this->chatManager->editMessage( $this->room, diff --git a/tests/integration/features/chat-1/note-to-self.feature b/tests/integration/features/chat-1/note-to-self.feature index 3e44131ff03d..5515af09bebd 100644 --- a/tests/integration/features/chat-1/note-to-self.feature +++ b/tests/integration/features/chat-1/note-to-self.feature @@ -22,3 +22,19 @@ Feature: chat/note-to-self Then user "participant1" sees the following system messages in room "Note to self" with 200 | room | actorType | actorId | actorDisplayName | message | messageParameters | systemMessage | | Note to self | guests | system | | System created the conversation | {"actor":{"type":"guest","id":"guest\/system","name":"Guest"}} | conversation_created | + + Scenario: Edit messages forever in note-to-self room + When user "participant1" creates note-to-self (v4) + And user "participant1" is participant of the following note-to-self rooms (v4) + | id | type | name | + | participant1-note-to-self | 6 | Note to self | + Then user "participant1" sends message "Initial message" to room "participant1-note-to-self" with 201 + And user "participant1" sees the following messages in room "participant1-note-to-self" with 200 + | room | actorType | actorId | actorDisplayName | message | messageParameters | + | participant1-note-to-self | users | participant1 | participant1-displayname | Initial message | [] | + When aging messages 24 hours in room "participant1-note-to-self" + And user "participant1" edits message "Initial message" in room "participant1-note-to-self" to "Edited after 24 hours" with 200 + Then user "participant1" sees the following messages in room "participant1-note-to-self" with 200 + | room | actorType | actorId | actorDisplayName | message | messageParameters | lastEditActorType | lastEditActorId | lastEditActorDisplayName | + | participant1-note-to-self | users | participant1 | participant1-displayname | Edited after 24 hours | [] | users | participant1 | participant1-displayname | + \ No newline at end of file