mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 12:03:46 +00:00 
			
		
		
		
	decorators: Extract rate_limit_request_by_ip function.
This commit is contained in:
		
				
					committed by
					
						 Tim Abbott
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							119f1da04a
						
					
				
				
					commit
					4418aefde4
				
			| @@ -862,6 +862,15 @@ def rate_limit_ip(request: HttpRequest, ip_addr: str, domain: str) -> None: | ||||
|     RateLimitedIPAddr(ip_addr, domain=domain).rate_limit_request(request) | ||||
|  | ||||
|  | ||||
| def rate_limit_request_by_ip(request: HttpRequest, domain: str) -> None: | ||||
|     # REMOTE_ADDR is set by SetRemoteAddrFromRealIpHeader in conjunction | ||||
|     # with the nginx configuration to guarantee this to be *the* correct | ||||
|     # IP address to use - without worrying we'll grab the IP of a proxy. | ||||
|     ip_addr = request.META["REMOTE_ADDR"] | ||||
|     assert ip_addr | ||||
|     rate_limit_ip(request, ip_addr, domain=domain) | ||||
|  | ||||
|  | ||||
| def rate_limit_remote_server( | ||||
|     request: HttpRequest, remote_server: "RemoteZulipServer", domain: str | ||||
| ) -> None: | ||||
| @@ -893,12 +902,7 @@ def rate_limit() -> Callable[[ViewFuncT], ViewFuncT]: | ||||
|             user = request.user | ||||
|  | ||||
|             if isinstance(user, AnonymousUser): | ||||
|                 # REMOTE_ADDR is set by SetRemoteAddrFromRealIpHeader in conjunction | ||||
|                 # with the nginx configuration to guarantee this to be *the* correct | ||||
|                 # IP address to use - without worrying we'll grab the IP of a proxy. | ||||
|                 ip_addr = request.META["REMOTE_ADDR"] | ||||
|                 assert ip_addr | ||||
|                 rate_limit_ip(request, ip_addr, domain="api_by_ip") | ||||
|                 rate_limit_request_by_ip(request, domain="api_by_ip") | ||||
|                 return func(request, *args, **kwargs) | ||||
|             elif settings.ZILENCER_ENABLED and isinstance(user, RemoteZulipServer): | ||||
|                 rate_limit_remote_server(request, user, domain="api_by_remote_server") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user