From f2386f126ee669b90cd9cdc9897278c6986a86d1 Mon Sep 17 00:00:00 2001
From: Jens Langhammer
Date: Wed, 1 Feb 2023 19:40:59 +0100
Subject: [PATCH] core: fix inconsistent branding in end_session view
Signed-off-by: Jens Langhammer
#4586
---
authentik/core/templates/if/end_session.html | 10 +-
locale/en/LC_MESSAGES/django.po | 898 ++++++++++++-------
2 files changed, 606 insertions(+), 302 deletions(-)
diff --git a/authentik/core/templates/if/end_session.html b/authentik/core/templates/if/end_session.html
index e4699b610..73cc3532d 100644
--- a/authentik/core/templates/if/end_session.html
+++ b/authentik/core/templates/if/end_session.html
@@ -21,9 +21,15 @@ You've logged out of {{ application }}.
{% endblocktrans %}
- {% trans 'Go back to overview' %}
+
+ {% trans 'Go back to overview' %}
+
- {% trans 'Log out of authentik' %}
+
+ {% blocktrans with branding_title=tenant.branding_title %}
+ Log out of {{ branding_title }}
+ {% endblocktrans %}
+
{% if application.get_launch_url %}
diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po
index f989e9048..f30d7a8a2 100644
--- a/locale/en/LC_MESSAGES/django.po
+++ b/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-01-29 15:14+0000\n"
+"POT-Creation-Date: 2023-02-01 18:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -43,11 +43,19 @@ msgstr ""
msgid "Managed by authentik"
msgstr ""
-#: authentik/blueprints/models.py:113
+#: authentik/blueprints/models.py:32
+msgid ""
+"Objects which are managed by authentik. These objects are created and "
+"updated automatically. This is flag only indicates that an object can be "
+"overwritten by migrations. You can still modify the objects via the API, but "
+"expect changes to be overwritten in a later update."
+msgstr ""
+
+#: authentik/blueprints/models.py:109
msgid "Blueprint Instance"
msgstr ""
-#: authentik/blueprints/models.py:114
+#: authentik/blueprints/models.py:110
msgid "Blueprint Instances"
msgstr ""
@@ -61,19 +69,19 @@ msgstr ""
msgid "Successfully imported %(count)d files."
msgstr ""
-#: authentik/core/api/providers.py:89
+#: authentik/core/api/providers.py:88
msgid "SAML Provider from Metadata"
msgstr ""
-#: authentik/core/api/providers.py:90
+#: authentik/core/api/providers.py:89
msgid "Create a SAML Provider by importing its Metadata."
msgstr ""
-#: authentik/core/api/users.py:116
+#: authentik/core/api/users.py:115
msgid "No leading or trailing slashes allowed."
msgstr ""
-#: authentik/core/api/users.py:119
+#: authentik/core/api/users.py:118
msgid "No empty segments in user path allowed."
msgstr ""
@@ -85,118 +93,139 @@ msgstr ""
msgid "Users added to this group will be superusers."
msgstr ""
-#: authentik/core/models.py:153
+#: authentik/core/models.py:152
msgid "User's display name."
msgstr ""
-#: authentik/core/models.py:263 authentik/providers/oauth2/models.py:333
+#: authentik/core/models.py:261 authentik/providers/oauth2/models.py:319
msgid "User"
msgstr ""
-#: authentik/core/models.py:264
+#: authentik/core/models.py:262
msgid "Users"
msgstr ""
-#: authentik/core/models.py:275
+#: authentik/core/models.py:273
msgid "Flow used when authorizing this provider."
msgstr ""
-#: authentik/core/models.py:308
+#: authentik/core/models.py:306
msgid "Application's display Name."
msgstr ""
-#: authentik/core/models.py:309
+#: authentik/core/models.py:307
msgid "Internal application name, used in URLs."
msgstr ""
-#: authentik/core/models.py:321
+#: authentik/core/models.py:319
msgid "Open launch URL in a new browser tab or window."
msgstr ""
-#: authentik/core/models.py:386
+#: authentik/core/models.py:383
msgid "Application"
msgstr ""
-#: authentik/core/models.py:387
+#: authentik/core/models.py:384
msgid "Applications"
msgstr ""
-#: authentik/core/models.py:393
+#: authentik/core/models.py:390
msgid "Use the source-specific identifier"
msgstr ""
-#: authentik/core/models.py:401
+#: authentik/core/models.py:392
+msgid ""
+"Link to a user with identical email address. Can have security implications "
+"when a source doesn't validate email addresses."
+msgstr ""
+
+#: authentik/core/models.py:396
msgid ""
"Use the user's email address, but deny enrollment when the email address "
"already exists."
msgstr ""
-#: authentik/core/models.py:410
+#: authentik/core/models.py:399
+msgid ""
+"Link to a user with identical username. Can have security implications when "
+"a username is used with another source."
+msgstr ""
+
+#: authentik/core/models.py:403
msgid ""
"Use the user's username, but deny enrollment when the username already "
"exists."
msgstr ""
-#: authentik/core/models.py:417
+#: authentik/core/models.py:410
msgid "Source's display Name."
msgstr ""
-#: authentik/core/models.py:418
+#: authentik/core/models.py:411
msgid "Internal source name, used in URLs."
msgstr ""
-#: authentik/core/models.py:437
+#: authentik/core/models.py:430
msgid "Flow to use when authenticating existing users."
msgstr ""
-#: authentik/core/models.py:446
+#: authentik/core/models.py:439
msgid "Flow to use when enrolling new users."
msgstr ""
-#: authentik/core/models.py:632
+#: authentik/core/models.py:447
+msgid ""
+"How the source determines if an existing user should be authenticated or a "
+"new user enrolled."
+msgstr ""
+
+#: authentik/core/models.py:619
msgid "Token"
msgstr ""
-#: authentik/core/models.py:633
+#: authentik/core/models.py:620
msgid "Tokens"
msgstr ""
-#: authentik/core/models.py:675
+#: authentik/core/models.py:661
msgid "Property Mapping"
msgstr ""
-#: authentik/core/models.py:676
+#: authentik/core/models.py:662
msgid "Property Mappings"
msgstr ""
-#: authentik/core/models.py:712
+#: authentik/core/models.py:697
msgid "Authenticated Session"
msgstr ""
-#: authentik/core/models.py:713
+#: authentik/core/models.py:698
msgid "Authenticated Sessions"
msgstr ""
-#: authentik/core/sources/flow_manager.py:197
-msgid "source"
+#: authentik/core/sources/flow_manager.py:193
+#, python-format
+msgid ""
+"Request to authenticate with %(source)s has been denied. Please authenticate "
+"with the source you've previously signed up with."
msgstr ""
-#: authentik/core/sources/flow_manager.py:248
+#: authentik/core/sources/flow_manager.py:245
msgid "Configured flow does not exist."
msgstr ""
-#: authentik/core/sources/flow_manager.py:278
-#: authentik/core/sources/flow_manager.py:330
+#: authentik/core/sources/flow_manager.py:275
+#: authentik/core/sources/flow_manager.py:327
#, python-format
msgid "Successfully authenticated with %(source)s!"
msgstr ""
-#: authentik/core/sources/flow_manager.py:302
+#: authentik/core/sources/flow_manager.py:299
#, python-format
msgid "Successfully linked %(source)s!"
msgstr ""
-#: authentik/core/sources/flow_manager.py:321
+#: authentik/core/sources/flow_manager.py:318
msgid "Source is not configured for enrollment."
msgstr ""
@@ -230,15 +259,19 @@ msgid ""
" "
msgstr ""
-#: authentik/core/templates/if/end_session.html:24
+#: authentik/core/templates/if/end_session.html:25
msgid "Go back to overview"
msgstr ""
-#: authentik/core/templates/if/end_session.html:26
-msgid "Log out of authentik"
+#: authentik/core/templates/if/end_session.html:29
+#, python-format
+msgid ""
+"\n"
+" Log out of %(branding_title)s\n"
+" "
msgstr ""
-#: authentik/core/templates/if/end_session.html:30
+#: authentik/core/templates/if/end_session.html:36
#, python-format
msgid ""
"\n"
@@ -262,7 +295,7 @@ msgstr ""
msgid "You're about to sign into %(application)s."
msgstr ""
-#: authentik/crypto/api.py:179
+#: authentik/crypto/api.py:178
msgid "Subject-alt name"
msgstr ""
@@ -276,49 +309,49 @@ msgid ""
"encryption."
msgstr ""
-#: authentik/crypto/models.py:102
+#: authentik/crypto/models.py:101
msgid "Certificate-Key Pair"
msgstr ""
-#: authentik/crypto/models.py:103
+#: authentik/crypto/models.py:102
msgid "Certificate-Key Pairs"
msgstr ""
-#: authentik/events/models.py:287
+#: authentik/events/models.py:286
msgid "Event"
msgstr ""
-#: authentik/events/models.py:288
+#: authentik/events/models.py:287
msgid "Events"
msgstr ""
-#: authentik/events/models.py:294
+#: authentik/events/models.py:293
msgid "authentik inbuilt notifications"
msgstr ""
-#: authentik/events/models.py:295
+#: authentik/events/models.py:294
msgid "Generic Webhook"
msgstr ""
-#: authentik/events/models.py:296
+#: authentik/events/models.py:295
msgid "Slack Webhook (Slack/Discord)"
msgstr ""
-#: authentik/events/models.py:297
+#: authentik/events/models.py:296
msgid "Email"
msgstr ""
-#: authentik/events/models.py:315
+#: authentik/events/models.py:314
msgid ""
"Only send notification once, for example when sending a webhook into a chat "
"channel."
msgstr ""
-#: authentik/events/models.py:375
+#: authentik/events/models.py:376
msgid "Severity"
msgstr ""
-#: authentik/events/models.py:380
+#: authentik/events/models.py:381
msgid "Dispatched for user"
msgstr ""
@@ -342,31 +375,43 @@ msgstr ""
msgid "Alert"
msgstr ""
-#: authentik/events/models.py:499
+#: authentik/events/models.py:498
msgid "Notification"
msgstr ""
-#: authentik/events/models.py:500
+#: authentik/events/models.py:499
msgid "Notifications"
msgstr ""
-#: authentik/events/models.py:520
+#: authentik/events/models.py:509
+msgid ""
+"Select which transports should be used to notify the user. If none are "
+"selected, the notification will only be shown in the authentik UI."
+msgstr ""
+
+#: authentik/events/models.py:517
msgid "Controls which severity level the created notifications will have."
msgstr ""
-#: authentik/events/models.py:546
+#: authentik/events/models.py:522
+msgid ""
+"Define which group of users this notification should be sent and shown to. "
+"If left empty, Notification won't ben sent."
+msgstr ""
+
+#: authentik/events/models.py:540
msgid "Notification Rule"
msgstr ""
-#: authentik/events/models.py:547
+#: authentik/events/models.py:541
msgid "Notification Rules"
msgstr ""
-#: authentik/events/models.py:568
+#: authentik/events/models.py:561
msgid "Webhook Mapping"
msgstr ""
-#: authentik/events/models.py:569
+#: authentik/events/models.py:562
msgid "Webhook Mappings"
msgstr ""
@@ -374,7 +419,7 @@ msgstr ""
msgid "Task has not been run yet."
msgstr ""
-#: authentik/flows/api/flows.py:292
+#: authentik/flows/api/flows.py:290
#, python-format
msgid "Flow not applicable to current user/request: %(messages)s"
msgstr ""
@@ -414,7 +459,7 @@ msgstr ""
msgid "Pre-flow policies"
msgstr ""
-#: authentik/flows/api/flows_diagram.py:187 authentik/flows/models.py:196
+#: authentik/flows/api/flows_diagram.py:187 authentik/flows/models.py:193
msgid "Flow"
msgstr ""
@@ -435,33 +480,45 @@ msgstr ""
msgid "Shown as the Title in Flow pages."
msgstr ""
-#: authentik/flows/models.py:149
+#: authentik/flows/models.py:138
+msgid ""
+"Decides what this Flow is used for. For example, the Authentication flow is "
+"redirect to when an un-authenticated user visits authentik."
+msgstr ""
+
+#: authentik/flows/models.py:147
msgid "Background shown during execution"
msgstr ""
-#: authentik/flows/models.py:156
+#: authentik/flows/models.py:154
msgid ""
"Enable compatibility mode, increases compatibility with password managers on "
"mobile devices."
msgstr ""
-#: authentik/flows/models.py:164
+#: authentik/flows/models.py:162
msgid "Configure what should happen when a flow denies access to a user."
msgstr ""
-#: authentik/flows/models.py:170
+#: authentik/flows/models.py:168
msgid "Required level of authentication and authorization to access a flow."
msgstr ""
-#: authentik/flows/models.py:197
+#: authentik/flows/models.py:194
msgid "Flows"
msgstr ""
-#: authentik/flows/models.py:227
+#: authentik/flows/models.py:216
+msgid ""
+"Evaluate policies during the Flow planning process. Disable this for input-"
+"based policies."
+msgstr ""
+
+#: authentik/flows/models.py:222
msgid "Evaluate policies when the Stage is present to the user."
msgstr ""
-#: authentik/flows/models.py:234
+#: authentik/flows/models.py:229
msgid ""
"Configure how the flow executor should handle an invalid response to a "
"challenge. RETRY returns the error message and a similar challenge to the "
@@ -469,19 +526,25 @@ msgid ""
"RESTART_WITH_CONTEXT restarts the flow while keeping the current context."
msgstr ""
-#: authentik/flows/models.py:258
+#: authentik/flows/models.py:252
msgid "Flow Stage Binding"
msgstr ""
-#: authentik/flows/models.py:259
+#: authentik/flows/models.py:253
msgid "Flow Stage Bindings"
msgstr ""
-#: authentik/flows/models.py:309
+#: authentik/flows/models.py:268
+msgid ""
+"Flow used by an authenticated user to configure this Stage. If empty, user "
+"will not be able to configure this stage."
+msgstr ""
+
+#: authentik/flows/models.py:299
msgid "Flow Token"
msgstr ""
-#: authentik/flows/models.py:310
+#: authentik/flows/models.py:300
msgid "Flow Tokens"
msgstr ""
@@ -490,96 +553,140 @@ msgstr ""
msgid "%(value)s is not in the correct format of 'hours=3;minutes=1'."
msgstr ""
-#: authentik/outposts/api/service_connections.py:131
+#: authentik/outposts/api/service_connections.py:129
msgid ""
"You can only use an empty kubeconfig when connecting to a local cluster."
msgstr ""
-#: authentik/outposts/api/service_connections.py:139
+#: authentik/outposts/api/service_connections.py:137
msgid "Invalid kubeconfig"
msgstr ""
-#: authentik/outposts/models.py:156
+#: authentik/outposts/models.py:121
+msgid ""
+"If enabled, use the local connection. Required Docker socket/Kubernetes "
+"Integration"
+msgstr ""
+
+#: authentik/outposts/models.py:151
msgid "Outpost Service-Connection"
msgstr ""
-#: authentik/outposts/models.py:157
+#: authentik/outposts/models.py:152
msgid "Outpost Service-Connections"
msgstr ""
-#: authentik/outposts/models.py:193
+#: authentik/outposts/models.py:160
+msgid ""
+"Can be in the format of 'unix://' when connecting to a local docker "
+"daemon, or 'https://:2376' when connecting to a remote system."
+msgstr ""
+
+#: authentik/outposts/models.py:172
+msgid ""
+"CA which the endpoint's Certificate is verified against. Can be left empty "
+"for no validation."
+msgstr ""
+
+#: authentik/outposts/models.py:184
msgid ""
"Certificate/Key used for authentication. Can be left empty for no "
"authentication."
msgstr ""
-#: authentik/outposts/models.py:212
+#: authentik/outposts/models.py:202
msgid "Docker Service-Connection"
msgstr ""
-#: authentik/outposts/models.py:213
+#: authentik/outposts/models.py:203
msgid "Docker Service-Connections"
msgstr ""
-#: authentik/outposts/models.py:229
+#: authentik/outposts/models.py:211
+msgid ""
+"Paste your kubeconfig here. authentik will automatically use the currently "
+"selected context."
+msgstr ""
+
+#: authentik/outposts/models.py:217
msgid "Verify SSL Certificates of the Kubernetes API endpoint"
msgstr ""
-#: authentik/outposts/models.py:247
+#: authentik/outposts/models.py:234
msgid "Kubernetes Service-Connection"
msgstr ""
-#: authentik/outposts/models.py:248
+#: authentik/outposts/models.py:235
msgid "Kubernetes Service-Connections"
msgstr ""
+#: authentik/outposts/models.py:251
+msgid ""
+"Select Service-Connection authentik should use to manage this outpost. Leave "
+"empty if authentik should not handle the deployment."
+msgstr ""
+
#: authentik/policies/denied.py:25
msgid "Access denied"
msgstr ""
-#: authentik/policies/dummy/models.py:45
+#: authentik/policies/dummy/models.py:44
msgid "Dummy Policy"
msgstr ""
-#: authentik/policies/dummy/models.py:46
+#: authentik/policies/dummy/models.py:45
msgid "Dummy Policies"
msgstr ""
#: authentik/policies/event_matcher/api.py:18
+#: authentik/policies/event_matcher/models.py:37
msgid ""
"Match events created by selected application. When left empty, all "
"applications are matched."
msgstr ""
-#: authentik/policies/event_matcher/models.py:79
+#: authentik/policies/event_matcher/models.py:29
+msgid ""
+"Match created events with this action type. When left empty, all action "
+"types will be matched."
+msgstr ""
+
+#: authentik/policies/event_matcher/models.py:44
+msgid ""
+"Matches Event's Client IP (strict matching, for network matching use an "
+"Expression Policy)"
+msgstr ""
+
+#: authentik/policies/event_matcher/models.py:72
msgid "Event Matcher Policy"
msgstr ""
-#: authentik/policies/event_matcher/models.py:80
+#: authentik/policies/event_matcher/models.py:73
msgid "Event Matcher Policies"
msgstr ""
-#: authentik/policies/expiry/models.py:46
-msgid "days"
+#: authentik/policies/expiry/models.py:45
+#, python-format
+msgid "Password expired %(days)d days ago. Please update your password."
msgstr ""
#: authentik/policies/expiry/models.py:49
msgid "Password has expired."
msgstr ""
-#: authentik/policies/expiry/models.py:54
+#: authentik/policies/expiry/models.py:53
msgid "Password Expiry Policy"
msgstr ""
-#: authentik/policies/expiry/models.py:55
+#: authentik/policies/expiry/models.py:54
msgid "Password Expiry Policies"
msgstr ""
-#: authentik/policies/expression/models.py:41
+#: authentik/policies/expression/models.py:40
msgid "Expression Policy"
msgstr ""
-#: authentik/policies/expression/models.py:42
+#: authentik/policies/expression/models.py:41
msgid "Expression Policies"
msgstr ""
@@ -607,19 +714,25 @@ msgstr ""
msgid "Timeout after which Policy execution is terminated."
msgstr ""
-#: authentik/policies/models.py:145
+#: authentik/policies/models.py:144
msgid "Policy Binding"
msgstr ""
-#: authentik/policies/models.py:146
+#: authentik/policies/models.py:145
msgid "Policy Bindings"
msgstr ""
-#: authentik/policies/models.py:191
+#: authentik/policies/models.py:166
+msgid ""
+"When this option is enabled, all executions of this policy will be logged. "
+"By default, only execution errors are logged."
+msgstr ""
+
+#: authentik/policies/models.py:188
msgid "Policy"
msgstr ""
-#: authentik/policies/models.py:192
+#: authentik/policies/models.py:189
msgid "Policies"
msgstr ""
@@ -649,19 +762,19 @@ msgstr ""
msgid "Password is too weak."
msgstr ""
-#: authentik/policies/password/models.py:163
+#: authentik/policies/password/models.py:162
msgid "Password Policy"
msgstr ""
-#: authentik/policies/password/models.py:164
+#: authentik/policies/password/models.py:163
msgid "Password Policies"
msgstr ""
-#: authentik/policies/reputation/models.py:59
+#: authentik/policies/reputation/models.py:58
msgid "Reputation Policy"
msgstr ""
-#: authentik/policies/reputation/models.py:60
+#: authentik/policies/reputation/models.py:59
msgid "Reputation Policies"
msgstr ""
@@ -727,11 +840,11 @@ msgid ""
"primary groups gidNumber"
msgstr ""
-#: authentik/providers/ldap/models.py:98
+#: authentik/providers/ldap/models.py:97
msgid "LDAP Provider"
msgstr ""
-#: authentik/providers/ldap/models.py:99
+#: authentik/providers/ldap/models.py:98
msgid "LDAP Providers"
msgstr ""
@@ -759,178 +872,218 @@ msgstr ""
msgid "Based on the User's Email. This is recommended over the UPN method."
msgstr ""
-#: authentik/providers/oauth2/models.py:88
+#: authentik/providers/oauth2/models.py:77
+msgid ""
+"Based on the User's UPN, only works if user has a 'upn' attribute set. Use "
+"this method only if you have different UPN and Mail domains."
+msgstr ""
+
+#: authentik/providers/oauth2/models.py:86
msgid "Same identifier is used for all providers"
msgstr ""
-#: authentik/providers/oauth2/models.py:90
+#: authentik/providers/oauth2/models.py:88
msgid "Each provider has a different issuer, based on the application slug."
msgstr ""
-#: authentik/providers/oauth2/models.py:97
+#: authentik/providers/oauth2/models.py:95
msgid "code (Authorization Code Flow)"
msgstr ""
-#: authentik/providers/oauth2/models.py:98
+#: authentik/providers/oauth2/models.py:96
msgid "id_token (Implicit Flow)"
msgstr ""
-#: authentik/providers/oauth2/models.py:99
+#: authentik/providers/oauth2/models.py:97
msgid "id_token token (Implicit Flow)"
msgstr ""
-#: authentik/providers/oauth2/models.py:100
+#: authentik/providers/oauth2/models.py:98
msgid "code token (Hybrid Flow)"
msgstr ""
-#: authentik/providers/oauth2/models.py:101
+#: authentik/providers/oauth2/models.py:99
msgid "code id_token (Hybrid Flow)"
msgstr ""
-#: authentik/providers/oauth2/models.py:102
+#: authentik/providers/oauth2/models.py:100
msgid "code id_token token (Hybrid Flow)"
msgstr ""
-#: authentik/providers/oauth2/models.py:108
+#: authentik/providers/oauth2/models.py:106
msgid "HS256 (Symmetric Encryption)"
msgstr ""
-#: authentik/providers/oauth2/models.py:109
+#: authentik/providers/oauth2/models.py:107
msgid "RS256 (Asymmetric Encryption)"
msgstr ""
-#: authentik/providers/oauth2/models.py:110
+#: authentik/providers/oauth2/models.py:108
msgid "ES256 (Asymmetric Encryption)"
msgstr ""
-#: authentik/providers/oauth2/models.py:116
+#: authentik/providers/oauth2/models.py:114
msgid "Scope used by the client"
msgstr ""
-#: authentik/providers/oauth2/models.py:142
+#: authentik/providers/oauth2/models.py:118
+msgid ""
+"Description shown to the user when consenting. If left empty, the user won't "
+"be informed."
+msgstr ""
+
+#: authentik/providers/oauth2/models.py:137
msgid "Scope Mapping"
msgstr ""
-#: authentik/providers/oauth2/models.py:143
+#: authentik/providers/oauth2/models.py:138
msgid "Scope Mappings"
msgstr ""
-#: authentik/providers/oauth2/models.py:153
+#: authentik/providers/oauth2/models.py:148
msgid "Client Type"
msgstr ""
-#: authentik/providers/oauth2/models.py:155
+#: authentik/providers/oauth2/models.py:150
msgid ""
"Confidential clients are capable of maintaining the confidentiality of their "
"credentials. Public clients are incapable"
msgstr ""
-#: authentik/providers/oauth2/models.py:162
+#: authentik/providers/oauth2/models.py:157
msgid "Client ID"
msgstr ""
-#: authentik/providers/oauth2/models.py:168
+#: authentik/providers/oauth2/models.py:163
msgid "Client Secret"
msgstr ""
-#: authentik/providers/oauth2/models.py:174
+#: authentik/providers/oauth2/models.py:169
msgid "Redirect URIs"
msgstr ""
-#: authentik/providers/oauth2/models.py:175
+#: authentik/providers/oauth2/models.py:170
msgid "Enter each URI on a new line."
msgstr ""
-#: authentik/providers/oauth2/models.py:180
+#: authentik/providers/oauth2/models.py:175
msgid "Include claims in id_token"
msgstr ""
-#: authentik/providers/oauth2/models.py:228
+#: authentik/providers/oauth2/models.py:177
+msgid ""
+"Include User claims from scopes in the id_token, for applications that don't "
+"access the userinfo endpoint."
+msgstr ""
+
+#: authentik/providers/oauth2/models.py:186
+msgid ""
+"Access codes not valid on or after current time + this value (Format: "
+"hours=1;minutes=2;seconds=3)."
+msgstr ""
+
+#: authentik/providers/oauth2/models.py:194
+msgid ""
+"Tokens not valid on or after current time + this value (Format: hours=1;"
+"minutes=2;seconds=3)."
+msgstr ""
+
+#: authentik/providers/oauth2/models.py:203
+msgid ""
+"Configure what data should be used as unique User Identifier. For most "
+"cases, the default should be fine."
+msgstr ""
+
+#: authentik/providers/oauth2/models.py:210
+msgid "Configure how the issuer field of the ID Token should be filled."
+msgstr ""
+
+#: authentik/providers/oauth2/models.py:215
msgid "Signing Key"
msgstr ""
-#: authentik/providers/oauth2/models.py:232
+#: authentik/providers/oauth2/models.py:219
msgid ""
"Key used to sign the tokens. Only required when JWT Algorithm is set to "
"RS256."
msgstr ""
-#: authentik/providers/oauth2/models.py:239
+#: authentik/providers/oauth2/models.py:226
msgid ""
"Any JWT signed by the JWK of the selected source can be used to authenticate."
msgstr ""
-#: authentik/providers/oauth2/models.py:325
+#: authentik/providers/oauth2/models.py:311
msgid "OAuth2/OpenID Provider"
msgstr ""
-#: authentik/providers/oauth2/models.py:326
+#: authentik/providers/oauth2/models.py:312
msgid "OAuth2/OpenID Providers"
msgstr ""
-#: authentik/providers/oauth2/models.py:335
-#: authentik/providers/oauth2/models.py:557
+#: authentik/providers/oauth2/models.py:321
+#: authentik/providers/oauth2/models.py:540
msgid "Scopes"
msgstr ""
-#: authentik/providers/oauth2/models.py:353
+#: authentik/providers/oauth2/models.py:339
msgid "Code"
msgstr ""
-#: authentik/providers/oauth2/models.py:354
+#: authentik/providers/oauth2/models.py:340
msgid "Nonce"
msgstr ""
-#: authentik/providers/oauth2/models.py:355
+#: authentik/providers/oauth2/models.py:341
msgid "Is Authentication?"
msgstr ""
-#: authentik/providers/oauth2/models.py:356
+#: authentik/providers/oauth2/models.py:342
msgid "Code Challenge"
msgstr ""
-#: authentik/providers/oauth2/models.py:358
+#: authentik/providers/oauth2/models.py:344
msgid "Code Challenge Method"
msgstr ""
-#: authentik/providers/oauth2/models.py:378
+#: authentik/providers/oauth2/models.py:364
msgid "Authorization Code"
msgstr ""
-#: authentik/providers/oauth2/models.py:379
+#: authentik/providers/oauth2/models.py:365
msgid "Authorization Codes"
msgstr ""
-#: authentik/providers/oauth2/models.py:434
+#: authentik/providers/oauth2/models.py:420
msgid "Access Token"
msgstr ""
-#: authentik/providers/oauth2/models.py:435
+#: authentik/providers/oauth2/models.py:421
msgid "Refresh Token"
msgstr ""
-#: authentik/providers/oauth2/models.py:436
+#: authentik/providers/oauth2/models.py:422
msgid "ID Token"
msgstr ""
-#: authentik/providers/oauth2/models.py:445
+#: authentik/providers/oauth2/models.py:431
msgid "OAuth2 Token"
msgstr ""
-#: authentik/providers/oauth2/models.py:446
+#: authentik/providers/oauth2/models.py:432
msgid "OAuth2 Tokens"
msgstr ""
-#: authentik/providers/oauth2/models.py:569
+#: authentik/providers/oauth2/models.py:552
msgid "Device Token"
msgstr ""
-#: authentik/providers/oauth2/models.py:570
+#: authentik/providers/oauth2/models.py:553
msgid "Device Tokens"
msgstr ""
-#: authentik/providers/oauth2/views/authorize.py:411
-#: authentik/providers/saml/views/flows.py:88
+#: authentik/providers/oauth2/views/authorize.py:410
+#: authentik/providers/saml/views/flows.py:87
#, python-format
msgid "Redirecting to %(app)s..."
msgstr ""
@@ -978,42 +1131,59 @@ msgid ""
"with internal_host."
msgstr ""
-#: authentik/providers/proxy/models.py:80
+#: authentik/providers/proxy/models.py:70
+msgid ""
+"Regular expressions for which authentication is not required. Each new line "
+"is interpreted as a new Regular Expression."
+msgstr ""
+
+#: authentik/providers/proxy/models.py:78
msgid ""
"When enabled, this provider will intercept the authorization header and "
"authenticate requests based on its value."
msgstr ""
-#: authentik/providers/proxy/models.py:86
+#: authentik/providers/proxy/models.py:84
msgid "Set HTTP-Basic Authentication"
msgstr ""
-#: authentik/providers/proxy/models.py:88
+#: authentik/providers/proxy/models.py:86
msgid ""
"Set a custom HTTP-Basic Authentication header based on values from authentik."
msgstr ""
-#: authentik/providers/proxy/models.py:93
+#: authentik/providers/proxy/models.py:91
msgid "HTTP-Basic Username Key"
msgstr ""
-#: authentik/providers/proxy/models.py:103
+#: authentik/providers/proxy/models.py:93
+msgid ""
+"User/Group Attribute used for the user part of the HTTP-Basic Header. If not "
+"set, the user's Email address is used."
+msgstr ""
+
+#: authentik/providers/proxy/models.py:99
msgid "HTTP-Basic Password Key"
msgstr ""
-#: authentik/providers/proxy/models.py:159
+#: authentik/providers/proxy/models.py:100
+msgid ""
+"User/Group Attribute used for the password part of the HTTP-Basic Header."
+msgstr ""
+
+#: authentik/providers/proxy/models.py:154
msgid "Proxy Provider"
msgstr ""
-#: authentik/providers/proxy/models.py:160
+#: authentik/providers/proxy/models.py:155
msgid "Proxy Providers"
msgstr ""
-#: authentik/providers/saml/api/providers.py:260
+#: authentik/providers/saml/api/providers.py:259
msgid "Invalid XML Syntax"
msgstr ""
-#: authentik/providers/saml/api/providers.py:270
+#: authentik/providers/saml/api/providers.py:269
#, python-format
msgid "Failed to import Metadata: %(message)s"
msgstr ""
@@ -1022,79 +1192,121 @@ msgstr ""
msgid "ACS URL"
msgstr ""
-#: authentik/providers/saml/models.py:49
+#: authentik/providers/saml/models.py:43
+msgid ""
+"Value of the audience restriction field of the assertion. When left empty, "
+"no audience restriction will be added."
+msgstr ""
+
+#: authentik/providers/saml/models.py:47
msgid "Also known as EntityID"
msgstr ""
-#: authentik/providers/saml/models.py:53
+#: authentik/providers/saml/models.py:51
msgid "Service Provider Binding"
msgstr ""
-#: authentik/providers/saml/models.py:65
+#: authentik/providers/saml/models.py:53
+msgid ""
+"This determines how authentik sends the response back to the Service "
+"Provider."
+msgstr ""
+
+#: authentik/providers/saml/models.py:63
msgid "NameID Property Mapping"
msgstr ""
-#: authentik/providers/saml/models.py:109 authentik/sources/saml/models.py:141
+#: authentik/providers/saml/models.py:65
+msgid ""
+"Configure how the NameID value will be created. When left empty, the "
+"NameIDPolicy of the incoming request will be considered"
+msgstr ""
+
+#: authentik/providers/saml/models.py:74
+msgid ""
+"Assertion valid not before current time + this value (Format: hours=-1;"
+"minutes=-2;seconds=-3)."
+msgstr ""
+
+#: authentik/providers/saml/models.py:82
+msgid ""
+"Assertion not valid on or after current time + this value (Format: hours=1;"
+"minutes=2;seconds=3)."
+msgstr ""
+
+#: authentik/providers/saml/models.py:91
+msgid ""
+"Session not valid on or after current time + this value (Format: hours=1;"
+"minutes=2;seconds=3)."
+msgstr ""
+
+#: authentik/providers/saml/models.py:99 authentik/sources/saml/models.py:139
msgid "SHA1"
msgstr ""
-#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:142
+#: authentik/providers/saml/models.py:100 authentik/sources/saml/models.py:140
msgid "SHA256"
msgstr ""
-#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:143
+#: authentik/providers/saml/models.py:101 authentik/sources/saml/models.py:141
msgid "SHA384"
msgstr ""
-#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:144
+#: authentik/providers/saml/models.py:102 authentik/sources/saml/models.py:142
msgid "SHA512"
msgstr ""
-#: authentik/providers/saml/models.py:119 authentik/sources/saml/models.py:151
+#: authentik/providers/saml/models.py:109 authentik/sources/saml/models.py:149
msgid "RSA-SHA1"
msgstr ""
-#: authentik/providers/saml/models.py:120 authentik/sources/saml/models.py:152
+#: authentik/providers/saml/models.py:110 authentik/sources/saml/models.py:150
msgid "RSA-SHA256"
msgstr ""
-#: authentik/providers/saml/models.py:121 authentik/sources/saml/models.py:153
+#: authentik/providers/saml/models.py:111 authentik/sources/saml/models.py:151
msgid "RSA-SHA384"
msgstr ""
-#: authentik/providers/saml/models.py:122 authentik/sources/saml/models.py:154
+#: authentik/providers/saml/models.py:112 authentik/sources/saml/models.py:152
msgid "RSA-SHA512"
msgstr ""
-#: authentik/providers/saml/models.py:123 authentik/sources/saml/models.py:155
+#: authentik/providers/saml/models.py:113 authentik/sources/saml/models.py:153
msgid "DSA-SHA1"
msgstr ""
-#: authentik/providers/saml/models.py:140
+#: authentik/providers/saml/models.py:124
+msgid ""
+"When selected, incoming assertion's Signatures will be validated against "
+"this certificate. To allow unsigned Requests, leave on default."
+msgstr ""
+
+#: authentik/providers/saml/models.py:128
msgid "Verification Certificate"
msgstr ""
-#: authentik/providers/saml/models.py:148
+#: authentik/providers/saml/models.py:136
msgid "Keypair used to sign outgoing Responses going to the Service Provider."
msgstr ""
-#: authentik/providers/saml/models.py:150 authentik/sources/saml/models.py:131
+#: authentik/providers/saml/models.py:138 authentik/sources/saml/models.py:129
msgid "Signing Keypair"
msgstr ""
-#: authentik/providers/saml/models.py:180
+#: authentik/providers/saml/models.py:167
msgid "SAML Provider"
msgstr ""
-#: authentik/providers/saml/models.py:181
+#: authentik/providers/saml/models.py:168
msgid "SAML Providers"
msgstr ""
-#: authentik/providers/saml/models.py:206
+#: authentik/providers/saml/models.py:192
msgid "SAML Property Mapping"
msgstr ""
-#: authentik/providers/saml/models.py:207
+#: authentik/providers/saml/models.py:193
msgid "SAML Property Mappings"
msgstr ""
@@ -1120,67 +1332,73 @@ msgid ""
"keypair."
msgstr ""
-#: authentik/sources/ldap/models.py:46
+#: authentik/sources/ldap/models.py:45
msgid "Bind CN"
msgstr ""
-#: authentik/sources/ldap/models.py:48
+#: authentik/sources/ldap/models.py:47
msgid "Enable Start TLS"
msgstr ""
-#: authentik/sources/ldap/models.py:50
+#: authentik/sources/ldap/models.py:49
msgid "Base DN"
msgstr ""
-#: authentik/sources/ldap/models.py:52
+#: authentik/sources/ldap/models.py:51
msgid "Prepended to Base DN for User-queries."
msgstr ""
-#: authentik/sources/ldap/models.py:53
+#: authentik/sources/ldap/models.py:52
msgid "Addition User DN"
msgstr ""
-#: authentik/sources/ldap/models.py:57
+#: authentik/sources/ldap/models.py:56
msgid "Prepended to Base DN for Group-queries."
msgstr ""
-#: authentik/sources/ldap/models.py:58
+#: authentik/sources/ldap/models.py:57
msgid "Addition Group DN"
msgstr ""
-#: authentik/sources/ldap/models.py:64
+#: authentik/sources/ldap/models.py:63
msgid "Consider Objects matching this filter to be Users."
msgstr ""
-#: authentik/sources/ldap/models.py:67
+#: authentik/sources/ldap/models.py:66
msgid "Field which contains members of a group."
msgstr ""
-#: authentik/sources/ldap/models.py:71
+#: authentik/sources/ldap/models.py:70
msgid "Consider Objects matching this filter to be Groups."
msgstr ""
-#: authentik/sources/ldap/models.py:74
+#: authentik/sources/ldap/models.py:73
msgid "Field which contains a unique Identifier."
msgstr ""
-#: authentik/sources/ldap/models.py:81
+#: authentik/sources/ldap/models.py:80
msgid "Property mappings used for group creation/updating."
msgstr ""
-#: authentik/sources/ldap/models.py:149
+#: authentik/sources/ldap/models.py:87
+msgid ""
+"When a user changes their password, sync it back to LDAP. This can only be "
+"enabled on a single LDAP source."
+msgstr ""
+
+#: authentik/sources/ldap/models.py:145
msgid "LDAP Source"
msgstr ""
-#: authentik/sources/ldap/models.py:150
+#: authentik/sources/ldap/models.py:146
msgid "LDAP Sources"
msgstr ""
-#: authentik/sources/ldap/models.py:173
+#: authentik/sources/ldap/models.py:168
msgid "LDAP Property Mapping"
msgstr ""
-#: authentik/sources/ldap/models.py:174
+#: authentik/sources/ldap/models.py:169
msgid "LDAP Property Mappings"
msgstr ""
@@ -1229,107 +1447,107 @@ msgstr ""
msgid "Additional Scopes"
msgstr ""
-#: authentik/sources/oauth/models.py:109
+#: authentik/sources/oauth/models.py:108
msgid "OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:110
+#: authentik/sources/oauth/models.py:109
msgid "OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:119
+#: authentik/sources/oauth/models.py:117
msgid "GitHub OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:120
+#: authentik/sources/oauth/models.py:118
msgid "GitHub OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:129
+#: authentik/sources/oauth/models.py:126
msgid "Twitch OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:130
+#: authentik/sources/oauth/models.py:127
msgid "Twitch OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:139
+#: authentik/sources/oauth/models.py:135
msgid "Mailcow OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:140
+#: authentik/sources/oauth/models.py:136
msgid "Mailcow OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:149
+#: authentik/sources/oauth/models.py:144
msgid "Twitter OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:150
+#: authentik/sources/oauth/models.py:145
msgid "Twitter OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:159
+#: authentik/sources/oauth/models.py:153
msgid "Facebook OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:160
+#: authentik/sources/oauth/models.py:154
msgid "Facebook OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:169
+#: authentik/sources/oauth/models.py:162
msgid "Discord OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:170
+#: authentik/sources/oauth/models.py:163
msgid "Discord OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:179
+#: authentik/sources/oauth/models.py:171
msgid "Google OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:180
+#: authentik/sources/oauth/models.py:172
msgid "Google OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:189
+#: authentik/sources/oauth/models.py:180
msgid "Azure AD OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:190
+#: authentik/sources/oauth/models.py:181
msgid "Azure AD OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:199
+#: authentik/sources/oauth/models.py:189
msgid "OpenID OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:200
+#: authentik/sources/oauth/models.py:190
msgid "OpenID OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:209
+#: authentik/sources/oauth/models.py:198
msgid "Apple OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:210
+#: authentik/sources/oauth/models.py:199
msgid "Apple OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:219
+#: authentik/sources/oauth/models.py:207
msgid "Okta OAuth Source"
msgstr ""
-#: authentik/sources/oauth/models.py:220
+#: authentik/sources/oauth/models.py:208
msgid "Okta OAuth Sources"
msgstr ""
-#: authentik/sources/oauth/models.py:243
+#: authentik/sources/oauth/models.py:230
msgid "User OAuth Source Connection"
msgstr ""
-#: authentik/sources/oauth/models.py:244
+#: authentik/sources/oauth/models.py:231
msgid "User OAuth Source Connections"
msgstr ""
@@ -1342,27 +1560,33 @@ msgstr ""
msgid "Client identifier used to talk to Plex."
msgstr ""
-#: authentik/sources/plex/models.py:52
+#: authentik/sources/plex/models.py:44
+msgid ""
+"Which servers a user has to be a member of to be granted access. Empty list "
+"allows every server."
+msgstr ""
+
+#: authentik/sources/plex/models.py:50
msgid "Allow friends to authenticate, even if you don't share a server."
msgstr ""
-#: authentik/sources/plex/models.py:54
+#: authentik/sources/plex/models.py:52
msgid "Plex token used to check friends"
msgstr ""
-#: authentik/sources/plex/models.py:98
+#: authentik/sources/plex/models.py:95
msgid "Plex Source"
msgstr ""
-#: authentik/sources/plex/models.py:99
+#: authentik/sources/plex/models.py:96
msgid "Plex Sources"
msgstr ""
-#: authentik/sources/plex/models.py:116
+#: authentik/sources/plex/models.py:112
msgid "User Plex Source Connection"
msgstr ""
-#: authentik/sources/plex/models.py:117
+#: authentik/sources/plex/models.py:113
msgid "User Plex Source Connections"
msgstr ""
@@ -1421,41 +1645,48 @@ msgstr ""
msgid "Delete temporary users after"
msgstr ""
-#: authentik/sources/saml/models.py:133
+#: authentik/sources/saml/models.py:118
+msgid ""
+"Time offset when temporary users should be deleted. This only applies if "
+"your IDP uses the NameID Format 'transient', and the user doesn't log out "
+"manually. (Format: hours=1;minutes=2;seconds=3)."
+msgstr ""
+
+#: authentik/sources/saml/models.py:131
msgid ""
"Keypair which is used to sign outgoing requests. Leave empty to disable "
"signing."
msgstr ""
-#: authentik/sources/saml/models.py:218
+#: authentik/sources/saml/models.py:215
msgid "SAML Source"
msgstr ""
-#: authentik/sources/saml/models.py:219
+#: authentik/sources/saml/models.py:216
msgid "SAML Sources"
msgstr ""
-#: authentik/sources/saml/models.py:235
+#: authentik/sources/saml/models.py:231
msgid "User SAML Source Connection"
msgstr ""
-#: authentik/sources/saml/models.py:236
+#: authentik/sources/saml/models.py:232
msgid "User SAML Source Connections"
msgstr ""
-#: authentik/stages/authenticator_duo/models.py:81
+#: authentik/stages/authenticator_duo/models.py:80
msgid "Duo Authenticator Setup Stage"
msgstr ""
-#: authentik/stages/authenticator_duo/models.py:82
+#: authentik/stages/authenticator_duo/models.py:81
msgid "Duo Authenticator Setup Stages"
msgstr ""
-#: authentik/stages/authenticator_duo/models.py:106
+#: authentik/stages/authenticator_duo/models.py:104
msgid "Duo Device"
msgstr ""
-#: authentik/stages/authenticator_duo/models.py:107
+#: authentik/stages/authenticator_duo/models.py:105
msgid "Duo Devices"
msgstr ""
@@ -1475,19 +1706,19 @@ msgstr ""
msgid "Use this code to authenticate in authentik: %(token)s"
msgstr ""
-#: authentik/stages/authenticator_sms/models.py:181
+#: authentik/stages/authenticator_sms/models.py:180
msgid "SMS Authenticator Setup Stage"
msgstr ""
-#: authentik/stages/authenticator_sms/models.py:182
+#: authentik/stages/authenticator_sms/models.py:181
msgid "SMS Authenticator Setup Stages"
msgstr ""
-#: authentik/stages/authenticator_sms/models.py:227
+#: authentik/stages/authenticator_sms/models.py:226
msgid "SMS Device"
msgstr ""
-#: authentik/stages/authenticator_sms/models.py:228
+#: authentik/stages/authenticator_sms/models.py:227
msgid "SMS Devices"
msgstr ""
@@ -1501,11 +1732,11 @@ msgstr ""
msgid "Invalid phone number"
msgstr ""
-#: authentik/stages/authenticator_static/models.py:47
+#: authentik/stages/authenticator_static/models.py:46
msgid "Static Authenticator Stage"
msgstr ""
-#: authentik/stages/authenticator_static/models.py:48
+#: authentik/stages/authenticator_static/models.py:47
msgid "Static Authenticator Stages"
msgstr ""
@@ -1517,11 +1748,11 @@ msgstr ""
msgid "8 digits, not compatible with apps like Google Authenticator"
msgstr ""
-#: authentik/stages/authenticator_totp/models.py:54
+#: authentik/stages/authenticator_totp/models.py:53
msgid "TOTP Authenticator Setup Stage"
msgstr ""
-#: authentik/stages/authenticator_totp/models.py:55
+#: authentik/stages/authenticator_totp/models.py:54
msgid "TOTP Authenticator Setup Stages"
msgstr ""
@@ -1549,35 +1780,48 @@ msgstr ""
msgid "SMS"
msgstr ""
-#: authentik/stages/authenticator_validate/models.py:58
+#: authentik/stages/authenticator_validate/models.py:49
+msgid ""
+"Stages used to configure Authenticator when user doesn't have any compatible "
+"devices. After this configuration Stage passes, the user is not prompted "
+"again."
+msgstr ""
+
+#: authentik/stages/authenticator_validate/models.py:56
msgid "Device classes which can be used to authenticate"
msgstr ""
-#: authentik/stages/authenticator_validate/models.py:74
+#: authentik/stages/authenticator_validate/models.py:64
+msgid ""
+"If any of the user's device has been used within this threshold, this stage "
+"will be skipped"
+msgstr ""
+
+#: authentik/stages/authenticator_validate/models.py:70
msgid "Enforce user verification for WebAuthn devices."
msgstr ""
-#: authentik/stages/authenticator_validate/models.py:97
+#: authentik/stages/authenticator_validate/models.py:92
msgid "Authenticator Validation Stage"
msgstr ""
-#: authentik/stages/authenticator_validate/models.py:98
+#: authentik/stages/authenticator_validate/models.py:93
msgid "Authenticator Validation Stages"
msgstr ""
-#: authentik/stages/authenticator_webauthn/models.py:113
+#: authentik/stages/authenticator_webauthn/models.py:112
msgid "WebAuthn Authenticator Setup Stage"
msgstr ""
-#: authentik/stages/authenticator_webauthn/models.py:114
+#: authentik/stages/authenticator_webauthn/models.py:113
msgid "WebAuthn Authenticator Setup Stages"
msgstr ""
-#: authentik/stages/authenticator_webauthn/models.py:153
+#: authentik/stages/authenticator_webauthn/models.py:151
msgid "WebAuthn Device"
msgstr ""
-#: authentik/stages/authenticator_webauthn/models.py:154
+#: authentik/stages/authenticator_webauthn/models.py:152
msgid "WebAuthn Devices"
msgstr ""
@@ -1589,43 +1833,48 @@ msgstr ""
msgid "Private key, acquired your captcha Provider."
msgstr ""
-#: authentik/stages/captcha/models.py:38
+#: authentik/stages/captcha/models.py:37
msgid "Captcha Stage"
msgstr ""
-#: authentik/stages/captcha/models.py:39
+#: authentik/stages/captcha/models.py:38
msgid "Captcha Stages"
msgstr ""
-#: authentik/stages/consent/models.py:51
+#: authentik/stages/consent/models.py:30
+msgid ""
+"Offset after which consent expires. (Format: hours=1;minutes=2;seconds=3)."
+msgstr ""
+
+#: authentik/stages/consent/models.py:50
msgid "Consent Stage"
msgstr ""
-#: authentik/stages/consent/models.py:52
+#: authentik/stages/consent/models.py:51
msgid "Consent Stages"
msgstr ""
-#: authentik/stages/consent/models.py:74
+#: authentik/stages/consent/models.py:72
msgid "User Consent"
msgstr ""
-#: authentik/stages/consent/models.py:75
+#: authentik/stages/consent/models.py:73
msgid "User Consents"
msgstr ""
-#: authentik/stages/deny/models.py:31
+#: authentik/stages/deny/models.py:30
msgid "Deny Stage"
msgstr ""
-#: authentik/stages/deny/models.py:32
+#: authentik/stages/deny/models.py:31
msgid "Deny Stages"
msgstr ""
-#: authentik/stages/dummy/models.py:35
+#: authentik/stages/dummy/models.py:34
msgid "Dummy Stage"
msgstr ""
-#: authentik/stages/dummy/models.py:36
+#: authentik/stages/dummy/models.py:35
msgid "Dummy Stages"
msgstr ""
@@ -1637,19 +1886,25 @@ msgstr ""
msgid "Account Confirmation"
msgstr ""
-#: authentik/stages/email/models.py:75
+#: authentik/stages/email/models.py:58
+msgid ""
+"When enabled, global Email connection settings will be used and connection "
+"settings below will be ignored."
+msgstr ""
+
+#: authentik/stages/email/models.py:73
msgid "Activate users upon completion of stage."
msgstr ""
-#: authentik/stages/email/models.py:79
+#: authentik/stages/email/models.py:77
msgid "Time in minutes the token sent is valid."
msgstr ""
-#: authentik/stages/email/models.py:125
+#: authentik/stages/email/models.py:122
msgid "Email Stage"
msgstr ""
-#: authentik/stages/email/models.py:126
+#: authentik/stages/email/models.py:123
msgid "Email Stages"
msgstr ""
@@ -1739,37 +1994,44 @@ msgid ""
" "
msgstr ""
-#: authentik/stages/identification/models.py:42
+#: authentik/stages/identification/models.py:29
msgid ""
-"When set, shows a password field, instead of showing the password field as "
-"seaprate step."
+"Fields of the user object to match against. (Hold shift to select multiple "
+"options)"
msgstr ""
-#: authentik/stages/identification/models.py:48
+#: authentik/stages/identification/models.py:47
msgid "When enabled, user fields are matched regardless of their casing."
msgstr ""
-#: authentik/stages/identification/models.py:68
+#: authentik/stages/identification/models.py:52
+msgid ""
+"When a valid username/email has been entered, and this option is enabled, "
+"the user's username and avatar will be shown. Otherwise, the text that the "
+"user entered will be shown"
+msgstr ""
+
+#: authentik/stages/identification/models.py:65
msgid "Optional enrollment flow, which is linked at the bottom of the page."
msgstr ""
-#: authentik/stages/identification/models.py:77
+#: authentik/stages/identification/models.py:74
msgid "Optional recovery flow, which is linked at the bottom of the page."
msgstr ""
-#: authentik/stages/identification/models.py:86
+#: authentik/stages/identification/models.py:83
msgid "Optional passwordless flow, which is linked at the bottom of the page."
msgstr ""
-#: authentik/stages/identification/models.py:90
+#: authentik/stages/identification/models.py:87
msgid "Specify which sources should be shown."
msgstr ""
-#: authentik/stages/identification/models.py:112
+#: authentik/stages/identification/models.py:108
msgid "Identification Stage"
msgstr ""
-#: authentik/stages/identification/models.py:113
+#: authentik/stages/identification/models.py:109
msgid "Identification Stages"
msgstr ""
@@ -1781,31 +2043,38 @@ msgstr ""
msgid "Continue"
msgstr ""
-#: authentik/stages/invitation/models.py:47
+#: authentik/stages/invitation/models.py:21
+msgid ""
+"If this flag is set, this Stage will jump to the next Stage when no "
+"Invitation is given. By default this Stage will cancel the Flow when no "
+"invitation is given."
+msgstr ""
+
+#: authentik/stages/invitation/models.py:44
msgid "Invitation Stage"
msgstr ""
-#: authentik/stages/invitation/models.py:48
+#: authentik/stages/invitation/models.py:45
msgid "Invitation Stages"
msgstr ""
-#: authentik/stages/invitation/models.py:63
+#: authentik/stages/invitation/models.py:60
msgid "When set, only the configured flow can use this invitation."
msgstr ""
-#: authentik/stages/invitation/models.py:67
+#: authentik/stages/invitation/models.py:64
msgid "When enabled, the invitation will be deleted after usage."
msgstr ""
-#: authentik/stages/invitation/models.py:74
+#: authentik/stages/invitation/models.py:71
msgid "Optional fixed data to enforce on user enrollment."
msgstr ""
-#: authentik/stages/invitation/models.py:88
+#: authentik/stages/invitation/models.py:84
msgid "Invitation"
msgstr ""
-#: authentik/stages/invitation/models.py:89
+#: authentik/stages/invitation/models.py:85
msgid "Invitations"
msgstr ""
@@ -1829,11 +2098,17 @@ msgstr ""
msgid "Selection of backends to test the password against."
msgstr ""
-#: authentik/stages/password/models.py:78
+#: authentik/stages/password/models.py:43
+msgid ""
+"How many attempts a user has before the flow is canceled. To lock the user "
+"out, use a reputation policy and a user_write stage."
+msgstr ""
+
+#: authentik/stages/password/models.py:75
msgid "Password Stage"
msgstr ""
-#: authentik/stages/password/models.py:79
+#: authentik/stages/password/models.py:76
msgid "Password Stages"
msgstr ""
@@ -1849,49 +2124,62 @@ msgstr ""
msgid "Text (read-only): Simple Text input, but cannot be edited."
msgstr ""
+#: authentik/stages/prompt/models.py:48
+msgid ""
+"Username: Same as Text input, but checks for and prevents duplicate "
+"usernames."
+msgstr ""
+
#: authentik/stages/prompt/models.py:50
msgid "Email: Text field with Email type."
msgstr ""
-#: authentik/stages/prompt/models.py:69
+#: authentik/stages/prompt/models.py:54
+msgid ""
+"Password: Masked input, password is validated against sources. Policies "
+"still have to be applied to this Stage. If two of these are used in the same "
+"stage, they are ensured to be identical."
+msgstr ""
+
+#: authentik/stages/prompt/models.py:67
msgid ""
"File: File upload for arbitrary files. File content will be available in "
"flow context as data-URI"
msgstr ""
-#: authentik/stages/prompt/models.py:74
+#: authentik/stages/prompt/models.py:72
msgid "Separator: Static Separator Line"
msgstr ""
-#: authentik/stages/prompt/models.py:75
+#: authentik/stages/prompt/models.py:73
msgid "Hidden: Hidden field, can be used to insert data into form."
msgstr ""
-#: authentik/stages/prompt/models.py:76
+#: authentik/stages/prompt/models.py:74
msgid "Static: Static value, displayed as-is."
msgstr ""
-#: authentik/stages/prompt/models.py:78
+#: authentik/stages/prompt/models.py:76
msgid "authentik: Selection of locales authentik supports"
msgstr ""
-#: authentik/stages/prompt/models.py:102
+#: authentik/stages/prompt/models.py:100
msgid "Name of the form field, also used to store the value"
msgstr ""
-#: authentik/stages/prompt/models.py:198
+#: authentik/stages/prompt/models.py:195
msgid "Prompt"
msgstr ""
-#: authentik/stages/prompt/models.py:199
+#: authentik/stages/prompt/models.py:196
msgid "Prompts"
msgstr ""
-#: authentik/stages/prompt/models.py:227
+#: authentik/stages/prompt/models.py:223
msgid "Prompt Stage"
msgstr ""
-#: authentik/stages/prompt/models.py:228
+#: authentik/stages/prompt/models.py:224
msgid "Prompt Stages"
msgstr ""
@@ -1899,11 +2187,11 @@ msgstr ""
msgid "Passwords don't match."
msgstr ""
-#: authentik/stages/user_delete/models.py:32
+#: authentik/stages/user_delete/models.py:31
msgid "User Delete Stage"
msgstr ""
-#: authentik/stages/user_delete/models.py:33
+#: authentik/stages/user_delete/models.py:32
msgid "User Delete Stages"
msgstr ""
@@ -1917,11 +2205,11 @@ msgid ""
"lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)"
msgstr ""
-#: authentik/stages/user_login/models.py:43
+#: authentik/stages/user_login/models.py:42
msgid "User Login Stage"
msgstr ""
-#: authentik/stages/user_login/models.py:44
+#: authentik/stages/user_login/models.py:43
msgid "User Login Stages"
msgstr ""
@@ -1933,11 +2221,11 @@ msgstr ""
msgid "Successfully logged in!"
msgstr ""
-#: authentik/stages/user_logout/models.py:31
+#: authentik/stages/user_logout/models.py:30
msgid "User Logout Stage"
msgstr ""
-#: authentik/stages/user_logout/models.py:32
+#: authentik/stages/user_logout/models.py:31
msgid "User Logout Stages"
msgstr ""
@@ -1949,11 +2237,11 @@ msgstr ""
msgid "Optionally add newly created users to this group."
msgstr ""
-#: authentik/stages/user_write/models.py:65
+#: authentik/stages/user_write/models.py:64
msgid "User Write Stage"
msgstr ""
-#: authentik/stages/user_write/models.py:66
+#: authentik/stages/user_write/models.py:65
msgid "User Write Stages"
msgstr ""
@@ -1975,10 +2263,20 @@ msgid ""
"and `ba.b`"
msgstr ""
-#: authentik/tenants/models.py:98
+#: authentik/tenants/models.py:58
+msgid ""
+"Events will be deleted after this duration.(Format: weeks=3;days=2;hours=3,"
+"seconds=2)."
+msgstr ""
+
+#: authentik/tenants/models.py:67
+msgid "Web Certificate used by the authentik Core webserver."
+msgstr ""
+
+#: authentik/tenants/models.py:93
msgid "Tenant"
msgstr ""
-#: authentik/tenants/models.py:99
+#: authentik/tenants/models.py:94
msgid "Tenants"
msgstr ""