mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-25 21:29:25 -05:00
Ratelimit 3pid invites
We do ratelimit sending the 3PID invite events, but that happens after spamming the identity server.
This commit is contained in:
parent
14d5ad7d2b
commit
28a81ed62f
@ -33,6 +33,8 @@ from synapse.types import RoomID, UserID
|
|||||||
from synapse.util.async_helpers import Linearizer
|
from synapse.util.async_helpers import Linearizer
|
||||||
from synapse.util.distributor import user_joined_room, user_left_room
|
from synapse.util.distributor import user_joined_room, user_left_room
|
||||||
|
|
||||||
|
from ._base import BaseHandler
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
id_server_scheme = "https://"
|
id_server_scheme = "https://"
|
||||||
@ -71,6 +73,11 @@ class RoomMemberHandler(object):
|
|||||||
self.spam_checker = hs.get_spam_checker()
|
self.spam_checker = hs.get_spam_checker()
|
||||||
self._server_notices_mxid = self.config.server_notices_mxid
|
self._server_notices_mxid = self.config.server_notices_mxid
|
||||||
|
|
||||||
|
# This is only used to get at ratelimit function, and
|
||||||
|
# maybe_kick_guest_users. It's fine there are multiple of these as
|
||||||
|
# it doesn't store state.
|
||||||
|
self.base_handler = BaseHandler(hs)
|
||||||
|
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def _remote_join(self, requester, remote_room_hosts, room_id, user, content):
|
def _remote_join(self, requester, remote_room_hosts, room_id, user, content):
|
||||||
"""Try and join a room that this server is not in
|
"""Try and join a room that this server is not in
|
||||||
@ -702,6 +709,9 @@ class RoomMemberHandler(object):
|
|||||||
Codes.FORBIDDEN,
|
Codes.FORBIDDEN,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Check whether we'll be ratelimited
|
||||||
|
yield self.base_handler.ratelimit(requester, update=False)
|
||||||
|
|
||||||
invitee = yield self._lookup_3pid(
|
invitee = yield self._lookup_3pid(
|
||||||
id_server, medium, address
|
id_server, medium, address
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user