diff options
author | Brendan Abolivier <babolivier@matrix.org> | 2019-06-17 18:08:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-17 18:08:31 +0100 |
commit | d6328e03fdf614c87552e5be2b815213c584bcee (patch) | |
tree | e55adcd48e1cc37d2d5d0ef5f55aa053cc8d3878 /synapse/handlers/room_member.py | |
parent | Merge pull request #5479 from matrix-org/erikj/add_create_room_hook_develop (diff) | |
parent | Make check_threepid_can_be_invited async (diff) | |
download | synapse-d6328e03fdf614c87552e5be2b815213c584bcee.tar.xz |
Merge pull request #5477 from matrix-org/babolivier/third_party_rules_3pid
Add third party rules hook for 3PID invites
Diffstat (limited to 'synapse/handlers/room_member.py')
-rw-r--r-- | synapse/handlers/room_member.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/synapse/handlers/room_member.py b/synapse/handlers/room_member.py index 93ac986c86..458902bb7e 100644 --- a/synapse/handlers/room_member.py +++ b/synapse/handlers/room_member.py @@ -72,6 +72,7 @@ class RoomMemberHandler(object): self.clock = hs.get_clock() self.spam_checker = hs.get_spam_checker() + self.third_party_event_rules = hs.get_third_party_event_rules() self._server_notices_mxid = self.config.server_notices_mxid self._enable_lookup = hs.config.enable_3pid_lookup self.allow_per_room_profiles = self.config.allow_per_room_profiles @@ -723,6 +724,15 @@ class RoomMemberHandler(object): # can't just rely on the standard ratelimiting of events. yield self.base_handler.ratelimit(requester) + can_invite = yield self.third_party_event_rules.check_threepid_can_be_invited( + medium, address, room_id, + ) + if not can_invite: + raise SynapseError( + 403, "This third-party identifier can not be invited in this room", + Codes.FORBIDDEN, + ) + invitee = yield self._lookup_3pid( id_server, medium, address ) |