flows: add compatibility_mode to toggle ShadyDOM

closes #894

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer
2021-06-05 20:04:30 +02:00
parent e43e42139a
commit 86b450c6d1
11 changed files with 88 additions and 7 deletions

View File

@ -4,7 +4,9 @@
{% load i18n %}
{% block head_before %}
{% if flow.compatibility_mode %}
<script>ShadyDOM = { force: !navigator.webdriver };</script>
{% endif %}
{% endblock %}
{% block head %}

View File

@ -6,6 +6,7 @@ from django.views.generic import RedirectView
from django.views.generic.base import TemplateView
from authentik.core.views import impersonate
from authentik.core.views.interface import FlowInterfaceView
urlpatterns = [
path(
@ -32,7 +33,7 @@ urlpatterns = [
),
path(
"if/flow/<slug:flow_slug>/",
ensure_csrf_cookie(TemplateView.as_view(template_name="if/flow.html")),
ensure_csrf_cookie(FlowInterfaceView.as_view()),
name="if-flow",
),
# Fallback for WS

View File

@ -0,0 +1,17 @@
"""Interface views"""
from typing import Any
from django.shortcuts import get_object_or_404
from django.views.generic.base import TemplateView
from authentik.flows.models import Flow
class FlowInterfaceView(TemplateView):
"""Flow interface"""
template_name = "if/flow.html"
def get_context_data(self, **kwargs: Any) -> dict[str, Any]:
kwargs["flow"] = get_object_or_404(Flow, slug=self.kwargs.get("slug"))
return super().get_context_data(**kwargs)