mirror of https://github.com/snachodog/mybuddy.git
Expose session-header in case the home assistant ingress-server is used
This commit is contained in:
parent
1a946a2228
commit
bb871257ff
|
@ -98,9 +98,9 @@ class HomeAssistant:
|
||||||
|
|
||||||
def __call__(self, request: HttpRequest):
|
def __call__(self, request: HttpRequest):
|
||||||
def wrap_x_ingress_path(org_func):
|
def wrap_x_ingress_path(org_func):
|
||||||
if request.headers.get("HTTP_X_HASS_SOURCE") != "core.ingress":
|
if not request.is_homeassistant_ingress_request:
|
||||||
return org_func
|
return org_func
|
||||||
x_ingress_path = request.headers.get("HTTP_X_INGRESS_PATH")
|
x_ingress_path = request.headers.get("X-Ingress-Path")
|
||||||
if x_ingress_path is None:
|
if x_ingress_path is None:
|
||||||
return org_func
|
return org_func
|
||||||
|
|
||||||
|
@ -115,6 +115,10 @@ class HomeAssistant:
|
||||||
return url
|
return url
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
request.is_homeassistant_ingress_request = (
|
||||||
|
request.headers.get("X-Hass-Source") == "core.ingress"
|
||||||
|
)
|
||||||
|
|
||||||
if self.use_x_ingress_path_rewrite:
|
if self.use_x_ingress_path_rewrite:
|
||||||
request.build_absolute_uri = wrap_x_ingress_path(
|
request.build_absolute_uri = wrap_x_ingress_path(
|
||||||
request.build_absolute_uri
|
request.build_absolute_uri
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{% load i18n widget_tweaks babybuddy qr_code %}
|
{% load i18n widget_tweaks babybuddy qr_code %}
|
||||||
{% url 'babybuddy:root-router' as relative_root_url %}
|
{% url 'babybuddy:root-router' as relative_root_url %}
|
||||||
{% make_absolute_url relative_root_url as absolute_root_url %}
|
{% make_absolute_url relative_root_url as absolute_root_url %}
|
||||||
BABYBUDDY-LOGIN:{"url":"{{ absolute_root_url }}","api_key":"{{ user.settings.api_key }}"}
|
BABYBUDDY-LOGIN:{"url":"{{ absolute_root_url }}","api_key":"{{ user.settings.api_key }}","session-cookie":"{{ session_cookie }}"}
|
|
@ -251,7 +251,18 @@ class UserAddDevice(LoginRequiredMixin, View):
|
||||||
qr_code_template = "babybuddy/login_qr_code.txt"
|
qr_code_template = "babybuddy/login_qr_code.txt"
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
qr_code_response = render(request, self.qr_code_template)
|
session_cookie = ""
|
||||||
|
if request.is_homeassistant_ingress_request:
|
||||||
|
session_cookie = request.headers.get("Cookie", "")
|
||||||
|
|
||||||
|
qr_code_response = render(
|
||||||
|
request,
|
||||||
|
self.qr_code_template,
|
||||||
|
{
|
||||||
|
"session_cookie": session_cookie,
|
||||||
|
}
|
||||||
|
|
||||||
|
)
|
||||||
qr_code_data = qr_code_response.content.decode().strip()
|
qr_code_data = qr_code_response.content.decode().strip()
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
|
|
Loading…
Reference in New Issue