Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 085cfb7

Browse files
committed
Remove room_version param from validate_event_for_room_version
Instead, use the `room_version` property of the event we're validating. The `room_version` was originally added as a parameter somewhere around #4482, but really it's been redundant since #6875 added a `room_version` field to `EventBase`.
1 parent e3f43bc commit 085cfb7

File tree

6 files changed

+14
-14
lines changed

6 files changed

+14
-14
lines changed

synapse/event_auth.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,7 @@
4545
logger = logging.getLogger(__name__)
4646

4747

48-
def validate_event_for_room_version(
49-
room_version_obj: RoomVersion, event: "EventBase"
50-
) -> None:
48+
def validate_event_for_room_version(event: "EventBase") -> None:
5149
"""Ensure that the event complies with the limits, and has the right signatures
5250
5351
NB: does not *validate* the signatures - it assumes that any signatures present
@@ -60,12 +58,10 @@ def validate_event_for_room_version(
6058
NB: This is used to check events that have been received over federation. As such,
6159
it can only enforce the checks specified in the relevant room version, to avoid
6260
a split-brain situation where some servers accept such events, and others reject
63-
them.
64-
65-
TODO: consider moving this into EventValidator
61+
them. See also EventValidator, which contains extra checks which are applied only to
62+
locally-generated events.
6663
6764
Args:
68-
room_version_obj: the version of the room which contains this event
6965
event: the event to be checked
7066
7167
Raises:
@@ -103,7 +99,7 @@ def validate_event_for_room_version(
10399
raise AuthError(403, "Event not signed by sending server")
104100

105101
is_invite_via_allow_rule = (
106-
room_version_obj.msc3083_join_rules
102+
event.room_version.msc3083_join_rules
107103
and event.type == EventTypes.Member
108104
and event.membership == Membership.JOIN
109105
and EventContentFields.AUTHORISING_USER in event.content

synapse/events/validator.py

+4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ class EventValidator:
3535
def validate_new(self, event: EventBase, config: HomeServerConfig) -> None:
3636
"""Validates the event has roughly the right format
3737
38+
Suitable for checking a locally-created event. It has stricter checks than
39+
is appropriate for an event received over federation (for which, see
40+
event_auth.validate_event_for_room_version)
41+
3842
Args:
3943
event: The event to validate.
4044
config: The homeserver's configuration.

synapse/handlers/federation.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1207,7 +1207,7 @@ async def exchange_third_party_invite(
12071207
event.internal_metadata.send_on_behalf_of = self.hs.hostname
12081208

12091209
try:
1210-
validate_event_for_room_version(room_version_obj, event)
1210+
validate_event_for_room_version(event)
12111211
await self._event_auth_handler.check_auth_rules_from_context(
12121212
room_version_obj, event, context
12131213
)
@@ -1259,7 +1259,7 @@ async def on_exchange_third_party_invite_request(
12591259
)
12601260

12611261
try:
1262-
validate_event_for_room_version(room_version_obj, event)
1262+
validate_event_for_room_version(event)
12631263
await self._event_auth_handler.check_auth_rules_from_context(
12641264
room_version_obj, event, context
12651265
)

synapse/handlers/federation_event.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1455,7 +1455,7 @@ def prep(event: EventBase) -> Optional[Tuple[EventBase, EventContext]]:
14551455

14561456
context = EventContext.for_outlier(self._storage_controllers)
14571457
try:
1458-
validate_event_for_room_version(room_version_obj, event)
1458+
validate_event_for_room_version(event)
14591459
check_auth_rules_for_event(room_version_obj, event, auth)
14601460
except AuthError as e:
14611461
logger.warning("Rejecting %r because %s", event, e)
@@ -1503,7 +1503,7 @@ async def _check_event_auth(
15031503
room_version_obj = KNOWN_ROOM_VERSIONS[room_version]
15041504

15051505
try:
1506-
validate_event_for_room_version(room_version_obj, event)
1506+
validate_event_for_room_version(event)
15071507
except AuthError as e:
15081508
logger.warning("While validating received event %r: %s", event, e)
15091509
# TODO: use a different rejected reason here?

synapse/handlers/message.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1298,7 +1298,7 @@ async def handle_new_client_event(
12981298
assert event.content["membership"] == Membership.LEAVE
12991299
else:
13001300
try:
1301-
validate_event_for_room_version(room_version_obj, event)
1301+
validate_event_for_room_version(event)
13021302
await self._event_auth_handler.check_auth_rules_from_context(
13031303
room_version_obj, event, context
13041304
)

synapse/handlers/room.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ async def upgrade_room(
227227
},
228228
)
229229
old_room_version = await self.store.get_room_version(old_room_id)
230-
validate_event_for_room_version(old_room_version, tombstone_event)
230+
validate_event_for_room_version(tombstone_event)
231231
await self._event_auth_handler.check_auth_rules_from_context(
232232
old_room_version, tombstone_event, tombstone_context
233233
)

0 commit comments

Comments
 (0)