diff options
author | Brendan Abolivier <babolivier@matrix.org> | 2022-02-03 14:28:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-03 14:28:15 +0100 |
commit | d80d39b0359d3891d0078e9c8b53e189986d417f (patch) | |
tree | a22614399664657d9dd41a799e14f5cc4b6c6868 /synapse/handlers | |
parent | Allow specifying the application service-specific `user_id` parameter in the ... (diff) | |
download | synapse-d80d39b0359d3891d0078e9c8b53e189986d417f.tar.xz |
Add a ratelimiter for 3pid invite (#11892)
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/room_member.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/synapse/handlers/room_member.py b/synapse/handlers/room_member.py index 3dd5e1b6e4..efe6b4c9aa 100644 --- a/synapse/handlers/room_member.py +++ b/synapse/handlers/room_member.py @@ -116,6 +116,13 @@ class RoomMemberHandler(metaclass=abc.ABCMeta): burst_count=hs.config.ratelimiting.rc_invites_per_user.burst_count, ) + self._third_party_invite_limiter = Ratelimiter( + store=self.store, + clock=self.clock, + rate_hz=hs.config.ratelimiting.rc_third_party_invite.per_second, + burst_count=hs.config.ratelimiting.rc_third_party_invite.burst_count, + ) + self.request_ratelimiter = hs.get_request_ratelimiter() @abc.abstractmethod @@ -1295,7 +1302,7 @@ class RoomMemberHandler(metaclass=abc.ABCMeta): # We need to rate limit *before* we send out any 3PID invites, so we # can't just rely on the standard ratelimiting of events. - await self.request_ratelimiter.ratelimit(requester) + await self._third_party_invite_limiter.ratelimit(requester) can_invite = await self.third_party_event_rules.check_threepid_can_be_invited( medium, address, room_id |