fix(fed): dont reject `/event/` on world readable rooms

Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
strawberry 2024-06-07 01:46:02 -04:00
parent 8103bd7310
commit 197a02bf8d
1 changed files with 5 additions and 4 deletions

View File

@ -28,10 +28,11 @@ pub(crate) async fn get_event_route(body: Ruma<get_event::v1::Request>) -> Resul
let room_id = let room_id =
<&RoomId>::try_from(room_id_str).map_err(|_| Error::bad_database("Invalid room_id in event in database."))?; <&RoomId>::try_from(room_id_str).map_err(|_| Error::bad_database("Invalid room_id in event in database."))?;
if !services() if !services().rooms.state_accessor.is_world_readable(room_id)?
.rooms && !services()
.state_cache .rooms
.server_in_room(origin, room_id)? .state_cache
.server_in_room(origin, room_id)?
{ {
return Err(Error::BadRequest(ErrorKind::forbidden(), "Server is not in room.")); return Err(Error::BadRequest(ErrorKind::forbidden(), "Server is not in room."));
} }