mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-18 14:34:17 -05:00
Make EventHandler.get_event
return None
when the requested event is not found (#15298)
This commit is contained in:
parent
f11fe931f5
commit
b6aef59334
1
changelog.d/15298.bugfix
Normal file
1
changelog.d/15298.bugfix
Normal file
@ -0,0 +1 @@
|
|||||||
|
Fix a bug in which the [`POST /_matrix/client/v3/rooms/{roomId}/report/{eventId}`](https://spec.matrix.org/v1.6/client-server-api/#post_matrixclientv3roomsroomidreporteventid) endpoint would return the wrong error if the user did not have permission to view the event. This aligns Synapse's implementation with [MSC2249](https://github.com/matrix-org/matrix-spec-proposals/pull/2249).
|
@ -159,15 +159,16 @@ class EventHandler:
|
|||||||
Returns:
|
Returns:
|
||||||
An event, or None if there is no event matching this ID.
|
An event, or None if there is no event matching this ID.
|
||||||
Raises:
|
Raises:
|
||||||
SynapseError if there was a problem retrieving this event, or
|
AuthError: if the user does not have the rights to inspect this event.
|
||||||
AuthError if the user does not have the rights to inspect this
|
|
||||||
event.
|
|
||||||
"""
|
"""
|
||||||
redact_behaviour = (
|
redact_behaviour = (
|
||||||
EventRedactBehaviour.as_is if show_redacted else EventRedactBehaviour.redact
|
EventRedactBehaviour.as_is if show_redacted else EventRedactBehaviour.redact
|
||||||
)
|
)
|
||||||
event = await self.store.get_event(
|
event = await self.store.get_event(
|
||||||
event_id, check_room_id=room_id, redact_behaviour=redact_behaviour
|
event_id,
|
||||||
|
check_room_id=room_id,
|
||||||
|
redact_behaviour=redact_behaviour,
|
||||||
|
allow_none=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
if not event:
|
if not event:
|
||||||
|
@ -84,6 +84,11 @@ class ReportEventTestCase(unittest.HomeserverTestCase):
|
|||||||
access_token=self.other_user_tok,
|
access_token=self.other_user_tok,
|
||||||
)
|
)
|
||||||
self.assertEqual(404, channel.code, msg=channel.result["body"])
|
self.assertEqual(404, channel.code, msg=channel.result["body"])
|
||||||
|
self.assertEqual(
|
||||||
|
"Unable to report event: it does not exist or you aren't able to see it.",
|
||||||
|
channel.json_body["error"],
|
||||||
|
msg=channel.result["body"],
|
||||||
|
)
|
||||||
|
|
||||||
def _assert_status(self, response_status: int, data: JsonDict) -> None:
|
def _assert_status(self, response_status: int, data: JsonDict) -> None:
|
||||||
channel = self.make_request(
|
channel = self.make_request(
|
||||||
|
Loading…
Reference in New Issue
Block a user