stages/dummy: add toggle to throw error for debugging

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2023-01-01 20:53:40 +01:00
parent b9bb27008e
commit 9fdfb8c99b
No known key found for this signature in database
6 changed files with 46 additions and 2 deletions

View file

@ -12,7 +12,7 @@ class DummyStageSerializer(StageSerializer):
class Meta:
model = DummyStage
fields = StageSerializer.Meta.fields
fields = StageSerializer.Meta.fields + ["throw_error"]
class DummyStageViewSet(UsedByMixin, ModelViewSet):

View file

@ -0,0 +1,18 @@
# Generated by Django 4.1.4 on 2023-01-01 19:31
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("authentik_stages_dummy", "0001_initial"),
]
operations = [
migrations.AddField(
model_name="dummystage",
name="throw_error",
field=models.BooleanField(default=False),
),
]

View file

@ -1,5 +1,5 @@
"""dummy stage models"""
from django.db import models
from django.utils.translation import gettext as _
from django.views import View
from rest_framework.serializers import BaseSerializer
@ -10,6 +10,8 @@ from authentik.flows.models import Stage
class DummyStage(Stage):
"""Used for debugging."""
throw_error = models.BooleanField(default=False)
__debug_only__ = True
@property

View file

@ -4,6 +4,7 @@ from rest_framework.fields import CharField
from authentik.flows.challenge import Challenge, ChallengeResponse, ChallengeTypes
from authentik.flows.stage import ChallengeStageView
from authentik.lib.sentry import SentryIgnoredException
class DummyChallenge(Challenge):
@ -27,6 +28,8 @@ class DummyStageView(ChallengeStageView):
return self.executor.stage_ok()
def get_challenge(self, *args, **kwargs) -> Challenge:
if self.executor.current_stage.throw_error:
raise SentryIgnoredException("Test error")
return DummyChallenge(
data={
"type": ChallengeTypes.NATIVE.value,

View file

@ -21607,6 +21607,10 @@ paths:
schema:
type: string
format: uuid
- in: query
name: throw_error
schema:
type: boolean
tags:
- stages
security:
@ -27177,6 +27181,8 @@ components:
type: array
items:
$ref: '#/components/schemas/FlowSet'
throw_error:
type: boolean
required:
- component
- meta_model_name
@ -27195,6 +27201,8 @@ components:
type: array
items:
$ref: '#/components/schemas/FlowSetRequest'
throw_error:
type: boolean
required:
- name
DuoDevice:
@ -33739,6 +33747,8 @@ components:
type: array
items:
$ref: '#/components/schemas/FlowSetRequest'
throw_error:
type: boolean
PatchedDuoDeviceRequest:
type: object
description: Serializer for Duo authenticator devices

View file

@ -1,4 +1,5 @@
import { DEFAULT_CONFIG } from "@goauthentik/common/api/config";
import { first } from "@goauthentik/common/utils";
import "@goauthentik/elements/forms/HorizontalFormElement";
import { ModelForm } from "@goauthentik/elements/forms/ModelForm";
@ -52,6 +53,16 @@ export class DummyStageForm extends ModelForm<DummyStage, string> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal name="throwError">
<div class="pf-c-check">
<input
type="checkbox"
class="pf-c-check__input"
?checked=${first(this.instance?.throwError, false)}
/>
<label class="pf-c-check__label"> ${t`Throw error?`} </label>
</div>
</ak-form-element-horizontal>
</form>`;
}
}