from ..decorators import *
from .. import util
-def blacklisted(method):
- @functools.wraps(method)
- async def wrapper(self, *args, **kwargs):
- # Check if remote is blacklisted
- is_blacklisted = await self.remote.is_blacklisted()
-
- # If so, redirect to the blocked page
- if is_blacklisted:
- logging.warning("%s is blacklisted" % self.remote)
-
- return self.redirect("https://www.ipfire.org/blocked")
-
- return method(self, *args, **kwargs)
-
- return wrapper
-
class ratelimit(object):
def __init__(self, minutes=15, requests=180):
self.minutes = minutes
raise tornado.web.HTTPError(400)
raise tornado.web.HTTPError(code)
-
-
-class BlockedHandler(BaseHandler):
- def get(self):
- # 403 - Forbidden
- self.set_status(403)
-
- self.render("static/blocked.html", address=self.get_remote_ip())