mirror of
				https://git.anonymousland.org/anonymousland/synapse.git
				synced 2025-10-31 15:18:50 -04:00 
			
		
		
		
	Merge branch 'develop' of github.com:matrix-org/synapse into erikj/add_rate_limiting_to_joins
This commit is contained in:
		
						commit
						faba873d4b
					
				
					 121 changed files with 1937 additions and 1256 deletions
				
			
		|  | @ -502,26 +502,39 @@ class RoomMemberHandler(object): | |||
|                     user_id=target.to_string(), room_id=room_id | ||||
|                 )  # type: Optional[RoomsForUser] | ||||
|                 if not invite: | ||||
|                     logger.info( | ||||
|                         "%s sent a leave request to %s, but that is not an active room " | ||||
|                         "on this server, and there is no pending invite", | ||||
|                         target, | ||||
|                         room_id, | ||||
|                     ) | ||||
| 
 | ||||
|                     raise SynapseError(404, "Not a known room") | ||||
| 
 | ||||
|                 logger.info( | ||||
|                     "%s rejects invite to %s from %s", target, room_id, invite.sender | ||||
|                 ) | ||||
| 
 | ||||
|                 if self.hs.is_mine_id(invite.sender): | ||||
|                     # the inviter was on our server, but has now left. Carry on | ||||
|                     # with the normal rejection codepath. | ||||
|                     # | ||||
|                     # This is a bit of a hack, because the room might still be | ||||
|                     # active on other servers. | ||||
|                     pass | ||||
|                 else: | ||||
|                 if not self.hs.is_mine_id(invite.sender): | ||||
|                     # send the rejection to the inviter's HS (with fallback to | ||||
|                     # local event) | ||||
|                     return await self.remote_reject_invite( | ||||
|                         invite.event_id, txn_id, requester, content, | ||||
|                     ) | ||||
| 
 | ||||
|                 # the inviter was on our server, but has now left. Carry on | ||||
|                 # with the normal rejection codepath, which will also send the | ||||
|                 # rejection out to any other servers we believe are still in the room. | ||||
| 
 | ||||
|                 # thanks to overzealous cleaning up of event_forward_extremities in | ||||
|                 # `delete_old_current_state_events`, it's possible to end up with no | ||||
|                 # forward extremities here. If that happens, let's just hang the | ||||
|                 # rejection off the invite event. | ||||
|                 # | ||||
|                 # see: https://github.com/matrix-org/synapse/issues/7139 | ||||
|                 if len(latest_event_ids) == 0: | ||||
|                     latest_event_ids = [invite.event_id] | ||||
| 
 | ||||
|         return await self._local_membership_update( | ||||
|             requester=requester, | ||||
|             target=target, | ||||
|  | @ -985,7 +998,11 @@ class RoomMemberMasterHandler(RoomMemberHandler): | |||
|         if len(remote_room_hosts) == 0: | ||||
|             raise SynapseError(404, "No known servers") | ||||
| 
 | ||||
|         if self.hs.config.limit_remote_rooms.enabled: | ||||
|         check_complexity = self.hs.config.limit_remote_rooms.enabled | ||||
|         if check_complexity and self.hs.config.limit_remote_rooms.admins_can_join: | ||||
|             check_complexity = not await self.hs.auth.is_server_admin(user) | ||||
| 
 | ||||
|         if check_complexity: | ||||
|             # Fetch the room complexity | ||||
|             too_complex = await self._is_remote_room_too_complex( | ||||
|                 room_id, remote_room_hosts | ||||
|  | @ -1008,7 +1025,7 @@ class RoomMemberMasterHandler(RoomMemberHandler): | |||
| 
 | ||||
|         # Check the room we just joined wasn't too large, if we didn't fetch the | ||||
|         # complexity of it before. | ||||
|         if self.hs.config.limit_remote_rooms.enabled: | ||||
|         if check_complexity: | ||||
|             if too_complex is False: | ||||
|                 # We checked, and we're under the limit. | ||||
|                 return event_id, stream_id | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Erik Johnston
						Erik Johnston