templates: add ip_in_networks test
This commit is contained in:
		@@ -7,4 +7,5 @@ app = MyQuartApp(__name__)
 | 
				
			|||||||
__import__('capport.api.setup')
 | 
					__import__('capport.api.setup')
 | 
				
			||||||
__import__('capport.api.proxy_fix')
 | 
					__import__('capport.api.proxy_fix')
 | 
				
			||||||
__import__('capport.api.lang')
 | 
					__import__('capport.api.lang')
 | 
				
			||||||
 | 
					__import__('capport.api.template_filters')
 | 
				
			||||||
__import__('capport.api.views')
 | 
					__import__('capport.api.views')
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								src/capport/api/template_filters.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/capport/api/template_filters.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					from __future__ import annotations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import ipaddress
 | 
				
			||||||
 | 
					import typing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from .app import app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@app.add_template_test
 | 
				
			||||||
 | 
					def ip_in_networks(ip_s: str, networks: typing.Iterable[str]) -> bool:
 | 
				
			||||||
 | 
					    ip = ipaddress.ip_address(ip_s)
 | 
				
			||||||
 | 
					    for network in networks:
 | 
				
			||||||
 | 
					        net = ipaddress.ip_network(network)
 | 
				
			||||||
 | 
					        if ip in net:
 | 
				
			||||||
 | 
					            return True
 | 
				
			||||||
 | 
					    return False
 | 
				
			||||||
		Reference in New Issue
	
	Block a user