This commit is contained in:
Daniel Perna 2018-07-15 23:46:56 +02:00
parent a17ca89819
commit af434188a2

View file

@ -3681,40 +3681,38 @@ class RequestHandler(BaseHTTPRequestHandler):
req = urlparse(self.path) req = urlparse(self.path)
if SESAME or TOTP: if SESAME or TOTP:
chunk = req.path.split("/")[-1] chunk = req.path.split("/")[-1]
if SESAME: if SESAME and chunk == SESAME:
if chunk == SESAME: if self.client_address[0] not in ALLOWED_NETWORKS:
if self.client_address[0] not in ALLOWED_NETWORKS: ALLOWED_NETWORKS.append(self.client_address[0])
ALLOWED_NETWORKS.append(self.client_address[0]) if self.client_address[0] in BANNED_IPS:
if self.client_address[0] in BANNED_IPS: BANNED_IPS.remove(self.client_address[0])
BANNED_IPS.remove(self.client_address[0]) url = req.path[:req.path.rfind(chunk)]
url = req.path[:req.path.rfind(chunk)] self.send_response(302)
self.send_response(302) self.send_header('Location', url)
self.send_header('Location', url) self.end_headers()
self.end_headers() data = {
data = { "title": "HASS Configurator - SESAME access",
"title": "HASS Configurator - SESAME access", "message": "Your SESAME token has been used to whitelist " \
"message": "Your SESAME token has been used to whitelist " \ "the IP address %s." % self.client_address[0]
"the IP address %s." % self.client_address[0] }
} notify(**data)
notify(**data) return
return if TOTP and TOTP.verify(chunk):
if TOTP: if self.client_address[0] not in ALLOWED_NETWORKS:
if TOTP.verify(chunk): ALLOWED_NETWORKS.append(self.client_address[0])
if self.client_address[0] not in ALLOWED_NETWORKS: if self.client_address[0] in BANNED_IPS:
ALLOWED_NETWORKS.append(self.client_address[0]) BANNED_IPS.remove(self.client_address[0])
if self.client_address[0] in BANNED_IPS: url = req.path[:req.path.rfind(chunk)]
BANNED_IPS.remove(self.client_address[0]) self.send_response(302)
url = req.path[:req.path.rfind(chunk)] self.send_header('Location', url)
self.send_response(302) self.end_headers()
self.send_header('Location', url) data = {
self.end_headers() "title": "HASS Configurator - SESAME access",
data = { "message": "Your SESAME token has been used to whitelist " \
"title": "HASS Configurator - SESAME access", "the IP address %s." % self.client_address[0]
"message": "Your SESAME token has been used to whitelist " \ }
"the IP address %s." % self.client_address[0] notify(**data)
} return
notify(**data)
return
if not check_access(self.client_address[0]): if not check_access(self.client_address[0]):
self.do_BLOCK() self.do_BLOCK()
return return