summary refs log tree commit diff
path: root/synapse/module_api/callbacks/spamchecker_callbacks.py
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-06-28 05:51:19 +0200
committerRory& <root@rory.gay>2025-06-28 05:51:19 +0200
commit3c8883fa627945f50957f431a3c07b55c8d10862 (patch)
treed80423df10d73456d904ca009d9a30348784e68c /synapse/module_api/callbacks/spamchecker_callbacks.py
parentTEMP: expose server error tracebacks (diff)
downloadsynapse-3c8883fa627945f50957f431a3c07b55c8d10862.tar.xz
Remove 3pid and identity servers
Diffstat (limited to 'synapse/module_api/callbacks/spamchecker_callbacks.py')
-rw-r--r--synapse/module_api/callbacks/spamchecker_callbacks.py69
1 files changed, 0 insertions, 69 deletions
diff --git a/synapse/module_api/callbacks/spamchecker_callbacks.py b/synapse/module_api/callbacks/spamchecker_callbacks.py

index d37f2efb3b..30cab9eb7e 100644 --- a/synapse/module_api/callbacks/spamchecker_callbacks.py +++ b/synapse/module_api/callbacks/spamchecker_callbacks.py
@@ -105,22 +105,6 @@ USER_MAY_INVITE_CALLBACK = Callable[ ] ], ] -USER_MAY_SEND_3PID_INVITE_CALLBACK = Callable[ - [str, str, str, str], - Awaitable[ - Union[ - Literal["NOT_SPAM"], - Codes, - # Highly experimental, not officially part of the spamchecker API, may - # disappear without warning depending on the results of ongoing - # experiments. - # Use this to return additional information as part of an error. - Tuple[Codes, JsonDict], - # Deprecated - bool, - ] - ], -] USER_MAY_CREATE_ROOM_CALLBACK_RETURN_VALUE = Union[ Literal["NOT_SPAM"], Codes, @@ -347,9 +331,6 @@ class SpamCheckerModuleApiCallbacks: ] = [] self._user_may_join_room_callbacks: List[USER_MAY_JOIN_ROOM_CALLBACK] = [] self._user_may_invite_callbacks: List[USER_MAY_INVITE_CALLBACK] = [] - self._user_may_send_3pid_invite_callbacks: List[ - USER_MAY_SEND_3PID_INVITE_CALLBACK - ] = [] self._user_may_create_room_callbacks: List[USER_MAY_CREATE_ROOM_CALLBACK] = [] self._user_may_send_state_event_callbacks: List[ USER_MAY_SEND_STATE_EVENT_CALLBACK @@ -377,7 +358,6 @@ class SpamCheckerModuleApiCallbacks: ] = None, user_may_join_room: Optional[USER_MAY_JOIN_ROOM_CALLBACK] = None, user_may_invite: Optional[USER_MAY_INVITE_CALLBACK] = None, - user_may_send_3pid_invite: Optional[USER_MAY_SEND_3PID_INVITE_CALLBACK] = None, user_may_create_room: Optional[USER_MAY_CREATE_ROOM_CALLBACK] = None, user_may_create_room_alias: Optional[ USER_MAY_CREATE_ROOM_ALIAS_CALLBACK @@ -406,11 +386,6 @@ class SpamCheckerModuleApiCallbacks: if user_may_invite is not None: self._user_may_invite_callbacks.append(user_may_invite) - if user_may_send_3pid_invite is not None: - self._user_may_send_3pid_invite_callbacks.append( - user_may_send_3pid_invite, - ) - if user_may_create_room is not None: self._user_may_create_room_callbacks.append(user_may_create_room) @@ -605,50 +580,6 @@ class SpamCheckerModuleApiCallbacks: # No spam-checker has rejected the request, let it pass. return self.NOT_SPAM - async def user_may_send_3pid_invite( - self, inviter_userid: str, medium: str, address: str, room_id: str - ) -> Union[Tuple[Codes, dict], Literal["NOT_SPAM"]]: - """Checks if a given user may invite a given threepid into the room - - Note that if the threepid is already associated with a Matrix user ID, Synapse - will call user_may_invite with said user ID instead. - - Args: - inviter_userid: The user ID of the sender of the invitation - medium: The 3PID's medium (e.g. "email") - address: The 3PID's address (e.g. "alice@example.com") - room_id: The room ID - - Returns: - NOT_SPAM if the operation is permitted, Codes otherwise. - """ - for callback in self._user_may_send_3pid_invite_callbacks: - with Measure(self.clock, f"{callback.__module__}.{callback.__qualname__}"): - res = await delay_cancellation( - callback(inviter_userid, medium, address, room_id) - ) - # Normalize return values to `Codes` or `"NOT_SPAM"`. - if res is True or res is self.NOT_SPAM: - continue - elif res is False: - return synapse.api.errors.Codes.FORBIDDEN, {} - elif isinstance(res, synapse.api.errors.Codes): - return res, {} - elif ( - isinstance(res, tuple) - and len(res) == 2 - and isinstance(res[0], synapse.api.errors.Codes) - and isinstance(res[1], dict) - ): - return res - else: - logger.warning( - "Module returned invalid value, rejecting 3pid invite as spam" - ) - return synapse.api.errors.Codes.FORBIDDEN, {} - - return self.NOT_SPAM - async def user_may_create_room( self, userid: str, room_config: JsonDict ) -> Union[Tuple[Codes, dict], Literal["NOT_SPAM"]]: