From 2aceed285ece46779328a8221d52b6c92bb15bfa Mon Sep 17 00:00:00 2001
From: Dewi Roberts
Date: Fri, 13 Jun 2025 17:54:20 +0100
Subject: [PATCH 01/19] providers/rac: fixes prompt data not being merged with
connection_settings (#15037)
* Fixes line that pulls in prompt data
* fallback to old settings
Signed-off-by: Jens Langhammer
---------
Signed-off-by: Jens Langhammer
Co-authored-by: Jens Langhammer
---
authentik/providers/rac/views.py | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/authentik/providers/rac/views.py b/authentik/providers/rac/views.py
index 9babd12733..b9a5b5f8a9 100644
--- a/authentik/providers/rac/views.py
+++ b/authentik/providers/rac/views.py
@@ -20,6 +20,9 @@ from authentik.lib.utils.time import timedelta_from_string
from authentik.policies.engine import PolicyEngine
from authentik.policies.views import PolicyAccessView
from authentik.providers.rac.models import ConnectionToken, Endpoint, RACProvider
+from authentik.stages.prompt.stage import PLAN_CONTEXT_PROMPT
+
+PLAN_CONNECTION_SETTINGS = "connection_settings"
class RACStartView(PolicyAccessView):
@@ -109,10 +112,15 @@ class RACFinalStage(RedirectStage):
return super().dispatch(request, *args, **kwargs)
def get_challenge(self, *args, **kwargs) -> RedirectChallenge:
+ settings = self.executor.plan.context.get(PLAN_CONNECTION_SETTINGS)
+ if not settings:
+ settings = self.executor.plan.context.get(PLAN_CONTEXT_PROMPT, {}).get(
+ PLAN_CONNECTION_SETTINGS
+ )
token = ConnectionToken.objects.create(
provider=self.provider,
endpoint=self.endpoint,
- settings=self.executor.plan.context.get("connection_settings", {}),
+ settings=settings or {},
session=self.request.session["authenticatedsession"],
expires=now() + timedelta_from_string(self.provider.connection_expiry),
expiring=True,
From 3c2ce40afd60b40cde6d34c4f16722766773c21d Mon Sep 17 00:00:00 2001
From: Ken Sternberg
<133134217+kensternberg-authentik@users.noreply.github.com>
Date: Fri, 13 Jun 2025 16:48:34 -0700
Subject: [PATCH 02/19] web/admin: Text and Textarea Fields that "hide" their
contents until prompted (#15024)
* web: Add InvalidationFlow to Radius Provider dialogues
## What
- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
- Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`
## Note
Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.
* This (temporary) change is needed to prevent the unit tests from failing.
\# What
\# Why
\# How
\# Designs
\# Test Steps
\# Other Notes
* Revert "This (temporary) change is needed to prevent the unit tests from failing."
This reverts commit dddde09be571a639ecd041569dd3a282aab3f9be.
* web/admin: Provide `hidden` text and textarea components
## Details
This commit provides two new elements (technically, since they're API-unaware), one for ``, and one for `