web/admin: rewrite sidebar to use full components, switch to categories

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2021-05-05 19:14:37 +02:00
parent be8b2bf6f6
commit 9e3b5d313b
6 changed files with 489 additions and 290 deletions

View file

@ -1,98 +1,14 @@
import { css, CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
import { css, CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFNav from "@patternfly/patternfly/components/Nav/nav.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import AKGlobal from "../../authentik.css";
import { until } from "lit-html/directives/until";
import "./SidebarBrand";
import "./SidebarUser";
import { ROUTE_SEPARATOR } from "../../constants";
export class SidebarItem {
name: string;
path?: string;
_children: SidebarItem[];
condition: () => Promise<boolean>;
activeMatchers: RegExp[];
constructor(name: string, path?: string) {
this.name = name;
this.path = path;
this._children = [];
this.condition = async () => true;
this.activeMatchers = [];
if (this.path) {
this.activeMatchers.push(new RegExp(`^${this.path}$`));
}
}
children(...children: SidebarItem[]): SidebarItem {
this._children = children;
return this;
}
activeWhen(...regexp: string[]): SidebarItem {
regexp.forEach(r => {
this.activeMatchers.push(new RegExp(r));
});
return this;
}
when(condition: () => Promise<boolean>): SidebarItem {
this.condition = condition;
return this;
}
hasChildren(): boolean {
return this._children.length > 0;
}
isActive(activePath: string): boolean {
if (!this.path) {
return false;
}
return this.activeMatchers.some(v => {
const match = v.exec(activePath);
if (match !== null) {
return true;
}
});
}
async render(activePath: string): Promise<TemplateResult> {
if (this.condition) {
const result = await this.condition();
if (!result) {
return html``;
}
}
if (!this.path) {
return html`<section class="pf-c-nav__section">
<h2 class="pf-c-nav__section-title">${this.name}</h2>
<ul class="pf-c-nav__list">
${this._children.map((i) => until(i.render(activePath), html``))}
</ul>
</section>`;
}
return html`<li class="pf-c-nav__item ${this.hasChildren() ? "pf-m-expandable pf-m-expanded" : ""}">
<a href="#${this.path}" class="pf-c-nav__link ${this.isActive(activePath) ? "pf-m-current" : ""}">
${this.name}
</a>
</li>`;
}
}
@customElement("ak-sidebar")
export class Sidebar extends LitElement {
@property({attribute: false})
items: SidebarItem[] = [];
@property()
activePath: string;
static get styles(): CSSResult[] {
return [
@ -145,19 +61,11 @@ export class Sidebar extends LitElement {
];
}
constructor() {
super();
this.activePath = window.location.hash.slice(1, Infinity).split(ROUTE_SEPARATOR)[0];
window.addEventListener("hashchange", () => {
this.activePath = window.location.hash.slice(1, Infinity).split(ROUTE_SEPARATOR)[0];
});
}
render(): TemplateResult {
return html`<nav class="pf-c-nav" aria-label="Global">
<ak-sidebar-brand></ak-sidebar-brand>
<ul class="pf-c-nav__list">
${this.items.map((i) => until(i.render(this.activePath), html``))}
<slot></slot>
</ul>
<ak-sidebar-user></ak-sidebar-user>
</nav>`;

View file

@ -0,0 +1,167 @@
import { css, CSSResult, customElement, LitElement, property } from "lit-element";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFNav from "@patternfly/patternfly/components/Nav/nav.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import AKGlobal from "../../authentik.css";
import { TemplateResult, html } from "lit-html";
import { until } from "lit-html/directives/until";
import { ROUTE_SEPARATOR } from "../../constants";
@customElement("ak-sidebar-item")
export class SidebarItem extends LitElement {
static get styles(): CSSResult[] {
return [
PFBase,
PFPage,
PFNav,
AKGlobal,
css`
:host {
z-index: 100;
box-shadow: none !important;
}
.pf-c-nav__link.pf-m-current::after,
.pf-c-nav__link.pf-m-current:hover::after,
.pf-c-nav__item.pf-m-current:not(.pf-m-expanded) .pf-c-nav__link::after {
--pf-c-nav__link--m-current--after--BorderColor: #fd4b2d;
}
.pf-c-nav__section + .pf-c-nav__section {
--pf-c-nav__section--section--MarginTop: var(--pf-global--spacer--sm);
}
.pf-c-nav__list .sidebar-brand {
max-height: 82px;
margin-bottom: -0.5rem;
}
nav {
display: flex;
flex-direction: column;
max-height: 100vh;
height: 100%;
overflow-y: hidden;
}
.pf-c-nav__list {
flex-grow: 1;
overflow-y: auto;
}
.pf-c-nav__link {
--pf-c-nav__link--PaddingTop: 0.5rem;
--pf-c-nav__link--PaddingRight: 0.5rem;
--pf-c-nav__link--PaddingBottom: 0.5rem;
}
.pf-c-nav__section-title {
font-size: 12px;
}
.pf-c-nav__item {
--pf-c-nav__item--MarginTop: 0px;
}
`,
];
}
@property()
path?: string;
@property({ attribute: false })
condition: () => Promise<boolean> = async () => true;
activeMatchers: RegExp[] = [];
@property({ type: Boolean })
expanded = false;
@property({ type: Boolean })
isActive = false;
parent?: SidebarItem;
get childItems(): SidebarItem[] {
const children = Array.from(this.querySelectorAll<SidebarItem>("ak-sidebar-item") || []);
children.forEach(child => child.parent = this);
return children;
}
@property({attribute: false})
set activeWhen(regexp: string[]) {
regexp.forEach(r => {
this.activeMatchers.push(new RegExp(r));
});
}
firstUpdated(): void {
this.onHashChange();
window.addEventListener("hashchange", () => this.onHashChange());
}
onHashChange(): void {
const activePath = window.location.hash.slice(1, Infinity).split(ROUTE_SEPARATOR)[0];
this.childItems.forEach(item => {
this.expandParentRecursive(activePath, item);
});
this.isActive = this.matchesPath(activePath);
}
private matchesPath(path: string): boolean {
if (!this.path) {
return false;
}
if (this.path) {
if (new RegExp(`^${this.path}$`).exec(path)) {
return true;
}
}
return this.activeMatchers.some(v => {
const match = v.exec(path);
if (match !== null) {
return true;
}
});
}
expandParentRecursive(activePath: string, item: SidebarItem): void {
if (item.matchesPath(activePath) && item.parent) {
item.parent.expanded = true;
this.requestUpdate();
}
item.childItems.forEach(i => this.expandParentRecursive(activePath, i));
}
render(): TemplateResult {
return html`${until(this.renderInner())}`;
}
async renderInner(): Promise<TemplateResult> {
if (this.condition) {
const result = await this.condition();
if (!result) {
return html``;
}
}
if (this.childItems.length > 0) {
return html`<li class="pf-c-nav__item ${this.expanded ? "pf-m-expandable pf-m-expanded" : ""}">
<button class="pf-c-nav__link" aria-expanded="true" @click=${() => {
this.expanded = !this.expanded;
}}>
<slot name="label"></slot>
<span class="pf-c-nav__toggle">
<span class="pf-c-nav__toggle-icon">
<i class="fas fa-angle-right" aria-hidden="true"></i>
</span>
</span>
</button>
<section class="pf-c-nav__subnav" ?hidden=${!this.expanded}>
<ul class="pf-c-nav__list">
<slot></slot>
</ul>
</section>
</li>`;
}
return html`<li class="pf-c-nav__item">
<a href="#${this.path}" class="pf-c-nav__link ${this.isActive ? "pf-m-current" : ""}">
<slot name="label"></slot>
</a>
</li>`;
}
}

View file

@ -1,73 +1,112 @@
import "../elements/messages/MessageContainer";
import { customElement } from "lit-element";
import { customElement, html, TemplateResult } from "lit-element";
import { me } from "../api/Users";
import { SidebarItem } from "../elements/sidebar/Sidebar";
import { ID_REGEX, SLUG_REGEX, UUID_REGEX } from "../elements/router/Route";
import { Interface } from "./Interface";
import "./locale";
import "../elements/sidebar/SidebarItem";
import { t } from "@lingui/macro";
export const SIDEBAR_ITEMS: SidebarItem[] = [
new SidebarItem(t`Library`, "/library"),
new SidebarItem(t`Monitor`).children(
new SidebarItem(t`Overview`, "/administration/overview"),
new SidebarItem(t`System Tasks`, "/administration/system-tasks"),
).when((): Promise<boolean> => {
return me().then(u => u.user.isSuperuser || false);
}),
new SidebarItem(t`Resources`).children(
new SidebarItem(t`Applications`, "/core/applications").activeWhen(
`^/core/applications/(?<slug>${SLUG_REGEX})$`
),
new SidebarItem(t`Sources`, "/core/sources").activeWhen(
`^/core/sources/(?<slug>${SLUG_REGEX})$`,
),
new SidebarItem(t`Providers`, "/core/providers").activeWhen(
`^/core/providers/(?<id>${ID_REGEX})$`,
),
new SidebarItem(t`Outposts`, "/outpost/outposts"),
new SidebarItem(t`Outpost Service Connections`, "/outpost/service-connections"),
).when((): Promise<boolean> => {
return me().then(u => u.user.isSuperuser || false);
}),
new SidebarItem(t`Events`).children(
new SidebarItem(t`Logs`, "/events/log").activeWhen(
`^/events/log/(?<id>${UUID_REGEX})$`
),
new SidebarItem(t`Notification Rules`, "/events/rules"),
new SidebarItem(t`Notification Transports`, "/events/transports"),
).when((): Promise<boolean> => {
return me().then(u => u.user.isSuperuser || false);
}),
new SidebarItem(t`Customisation`).children(
new SidebarItem(t`Policies`, "/policy/policies"),
new SidebarItem(t`Property Mappings`, "/core/property-mappings"),
).when((): Promise<boolean> => {
return me().then(u => u.user.isSuperuser || false);
}),
new SidebarItem(t`Flows`).children(
new SidebarItem(t`Flows`, "/flow/flows").activeWhen(`^/flow/flows/(?<slug>${SLUG_REGEX})$`),
new SidebarItem(t`Stages`, "/flow/stages"),
new SidebarItem(t`Prompts`, "/flow/stages/prompts"),
new SidebarItem(t`Invitations`, "/flow/stages/invitations"),
).when((): Promise<boolean> => {
return me().then(u => u.user.isSuperuser || false);
}),
new SidebarItem(t`Identity & Cryptography`).children(
new SidebarItem(t`Users`, "/identity/users").activeWhen(`^/identity/users/(?<id>${ID_REGEX})$`),
new SidebarItem(t`Groups`, "/identity/groups"),
new SidebarItem(t`Certificates`, "/crypto/certificates"),
new SidebarItem(t`Tokens`, "/core/tokens"),
).when((): Promise<boolean> => {
return me().then(u => u.user.isSuperuser || false);
}),
];
@customElement("ak-interface-admin")
export class AdminInterface extends Interface {
get sidebar(): SidebarItem[] {
return SIDEBAR_ITEMS;
renderSidebarItems(): TemplateResult {
const superUserCondition = () => {
return me().then(u => u.user.isSuperuser || false);
};
return html`
<ak-sidebar-item path="/library">
<span slot="label">${t`Library`}</span>
</ak-sidebar-item>
<ak-sidebar-item
.condition=${superUserCondition}>
<span slot="label">${t`Monitor`}</span>
<ak-sidebar-item path="/administration/overview">
<span slot="label">${t`Overview`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/administration/system-tasks">
<span slot="label">${t`System Tasks`}</span>
</ak-sidebar-item>
</ak-sidebar-item>
<ak-sidebar-item
.condition=${superUserCondition}>
<span slot="label">${t`Resources`}</span>
<ak-sidebar-item path="/core/applications" .activeWhen=${[`^/core/applications/(?<slug>${SLUG_REGEX})$`]}>
<span slot="label">${t`Applications`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/core/sources" .activeWhen=${[`^/core/sources/(?<slug>${SLUG_REGEX})$`]}>
<span slot="label">${t`Sources`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/core/providers" .activeWhen=${[`^/core/providers/(?<id>${ID_REGEX})$`]}>
<span slot="label">${t`Providers`}</span>
</ak-sidebar-item>
</ak-sidebar-item>
<ak-sidebar-item
.condition=${superUserCondition}>
<span slot="label">${t`Outposts`}</span>
<ak-sidebar-item path="/outpost/outposts">
<span slot="label">${t`Outposts`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/outpost/service-connections">
<span slot="label">${t`Service Connections`}</span>
</ak-sidebar-item>
</ak-sidebar-item>
<ak-sidebar-item
.condition=${superUserCondition}>
<span slot="label">${t`Events`}</span>
<ak-sidebar-item path="/events/log" .activeWhen=${[`^/events/log/(?<id>${UUID_REGEX})$`]}>
<span slot="label">${t`Logs`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/events/rules">
<span slot="label">${t`Notification Rules`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/events/transports">
<span slot="label">${t`Notification Transports`}</span>
</ak-sidebar-item>
</ak-sidebar-item>
<ak-sidebar-item
.condition=${superUserCondition}>
<span slot="label">${t`Customisation`}</span>
<ak-sidebar-item path="/policy/policies">
<span slot="label">${t`Policies`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/core/property-mappings">
<span slot="label">${t`Property Mappings`}</span>
</ak-sidebar-item>
</ak-sidebar-item>
<ak-sidebar-item
.condition=${superUserCondition}>
<span slot="label">${t`Flows`}</span>
<ak-sidebar-item path="/flow/flows" .activeWhen=${[`^/flow/flows/(?<slug>${SLUG_REGEX})$`]}>
<span slot="label">${t`Flows`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/flow/stages">
<span slot="label">${t`Stages`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/flow/stages/prompts">
<span slot="label">${t`Prompts`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/flow/stages/invitations">
<span slot="label">${t`Invitations`}</span>
</ak-sidebar-item>
</ak-sidebar-item>
<ak-sidebar-item
.condition=${superUserCondition}>
<span slot="label">${t`Identity & Cryptography`}</span>
<ak-sidebar-item path="/identity/users" .activeWhen=${[`^/identity/users/(?<id>${ID_REGEX})$`]}>
<span slot="label">${t`Users`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/identity/groups">
<span slot="label">${t`Groups`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/crypto/certificates">
<span slot="label">${t`Certificates`}</span>
</ak-sidebar-item>
<ak-sidebar-item path="/core/tokens">
<span slot="label">${t`Tokens`}</span>
</ak-sidebar-item>
</ak-sidebar-item>
`;
}
}

View file

@ -1,5 +1,4 @@
import { css, CSSResult, html, LitElement, property, TemplateResult } from "lit-element";
import { SidebarItem } from "../elements/sidebar/Sidebar";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
@ -9,6 +8,7 @@ import "../elements/router/RouterOutlet";
import "../elements/messages/MessageContainer";
import "../elements/notifications/NotificationDrawer";
import "../elements/Banner";
import "../elements/sidebar/Sidebar";
import { until } from "lit-html/directives/until";
import { me } from "../api/Users";
import { t } from "@lingui/macro";
@ -23,8 +23,6 @@ export abstract class Interface extends LitElement {
@property({type: Boolean})
notificationOpen = false;
abstract get sidebar(): SidebarItem[];
static get styles(): CSSResult[] {
return [PFBase, PFPage, PFButton, PFDrawer, css`
.pf-c-page__main, .pf-c-drawer__content, .pf-c-page__drawer {
@ -47,6 +45,10 @@ export abstract class Interface extends LitElement {
});
}
renderSidebarItems(): TemplateResult {
return html``;
}
render(): TemplateResult {
return html`
${until(new AdminApi(DEFAULT_CONFIG).adminVersionList().then(version => {
@ -72,7 +74,8 @@ export abstract class Interface extends LitElement {
return html``;
}))}
<div class="pf-c-page">
<ak-sidebar class="pf-c-page__sidebar ${this.sidebarOpen ? "pf-m-expanded" : "pf-m-collapsed"}" .items=${this.sidebar}>
<ak-sidebar class="pf-c-page__sidebar ${this.sidebarOpen ? "pf-m-expanded" : "pf-m-collapsed"}">
${this.renderSidebarItems()}
</ak-sidebar>
<div class="pf-c-page__drawer">
<div class="pf-c-drawer ${this.notificationOpen ? "pf-m-expanded" : "pf-m-collapsed"}">

View file

@ -32,7 +32,7 @@ msgstr "6 digits, widely compatible"
msgid "8 digits, not compatible with apps like Google Authenticator"
msgstr "8 digits, not compatible with apps like Google Authenticator"
#: src/interfaces/Interface.ts:50
#: src/interfaces/Interface.ts:54
msgid "A newer version of the frontend is available."
msgstr "A newer version of the frontend is available."
@ -184,7 +184,7 @@ msgstr "App"
#: src/elements/user/UserConsentList.ts:29
#: src/pages/admin-overview/TopApplicationsTable.ts:42
#: src/pages/applications/ApplicationListPage.ts:105
#: src/pages/providers/ProviderListPage.ts:53
#: src/pages/providers/ProviderListPage.ts:54
msgid "Application"
msgstr "Application"
@ -200,7 +200,7 @@ msgstr "Application requires following permissions"
msgid "Application's display Name."
msgstr "Application's display Name."
#: src/interfaces/AdminInterface.ts:20
#: src/interfaces/AdminInterface.ts:38
#: src/pages/LibraryPage.ts:93
#: src/pages/LibraryPage.ts:130
#: src/pages/applications/ApplicationListPage.ts:28
@ -251,7 +251,8 @@ msgstr "Assertion valid not on or after"
msgid "Assertions is empty"
msgstr "Assertions is empty"
#: src/pages/providers/ProviderListPage.ts:65
#: src/pages/providers/ProviderListPage.ts:66
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:72
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:81
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:72
#: src/pages/providers/saml/SAMLProviderViewPage.ts:74
@ -289,7 +290,7 @@ msgstr "Authenticating with Plex..."
msgid "Authentication"
msgstr "Authentication"
#: src/pages/sources/oauth/OAuthSourceForm.ts:211
#: src/pages/sources/oauth/OAuthSourceForm.ts:212
#: src/pages/sources/plex/PlexSourceForm.ts:171
#: src/pages/sources/saml/SAMLSourceForm.ts:245
msgid "Authentication flow"
@ -353,6 +354,8 @@ msgstr "Backup finished with warnings."
msgid "Backup status"
msgstr "Backup status"
#: src/pages/providers/ldap/LDAPProviderForm.ts:97
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:82
#: src/pages/sources/ldap/LDAPSourceForm.ts:131
#: src/pages/sources/ldap/LDAPSourceViewPage.ts:80
msgid "Base DN"
@ -386,6 +389,10 @@ msgstr "Bind CN"
msgid "Bind Password"
msgstr "Bind Password"
#: src/pages/providers/ldap/LDAPProviderForm.ts:60
msgid "Bind flow"
msgstr "Bind flow"
#: src/pages/flows/BoundStagesList.ts:127
#: src/pages/flows/BoundStagesList.ts:175
msgid "Bind stage"
@ -470,7 +477,7 @@ msgstr "Certificate-Key Pairs"
msgid "Certificate/Key used for authentication. Can be left empty for no authentication."
msgstr "Certificate/Key used for authentication. Can be left empty for no authentication."
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:106
msgid "Certificates"
msgstr "Certificates"
@ -484,6 +491,7 @@ msgstr "Change your password"
#: src/pages/applications/ApplicationViewPage.ts:136
#: src/pages/flows/FlowViewPage.ts:110
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:111
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:136
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:135
#: src/pages/providers/saml/SAMLProviderViewPage.ts:129
@ -595,7 +603,7 @@ msgstr "Confidential"
msgid "Confidential clients are capable of maintaining the confidentiality of their credentials. Public clients are incapable."
msgstr "Confidential clients are capable of maintaining the confidentiality of their credentials. Public clients are incapable."
#: src/pages/outposts/OutpostForm.ts:106
#: src/pages/outposts/OutpostForm.ts:118
msgid "Configuration"
msgstr "Configuration"
@ -751,8 +759,8 @@ msgstr "Copy Key"
#: src/pages/policies/PolicyListPage.ts:133
#: src/pages/property-mappings/PropertyMappingListPage.ts:113
#: src/pages/property-mappings/PropertyMappingListPage.ts:122
#: src/pages/providers/ProviderListPage.ts:107
#: src/pages/providers/ProviderListPage.ts:116
#: src/pages/providers/ProviderListPage.ts:108
#: src/pages/providers/ProviderListPage.ts:117
#: src/pages/providers/RelatedApplicationButton.ts:27
#: src/pages/providers/RelatedApplicationButton.ts:35
#: src/pages/sources/SourcesListPage.ts:114
@ -852,7 +860,7 @@ msgstr "Create provider"
#: src/pages/policies/BoundPoliciesList.ts:192
#: src/pages/policies/PolicyListPage.ts:136
#: src/pages/property-mappings/PropertyMappingListPage.ts:125
#: src/pages/providers/ProviderListPage.ts:119
#: src/pages/providers/ProviderListPage.ts:120
#: src/pages/sources/SourcesListPage.ts:126
#: src/pages/stages/StageListPage.ts:131
msgid "Create {0}"
@ -872,7 +880,7 @@ msgstr "Created {0}"
msgid "Creation Date"
msgstr "Creation Date"
#: src/interfaces/AdminInterface.ts:26
#: src/interfaces/AdminInterface.ts:72
msgid "Customisation"
msgstr "Customisation"
@ -908,7 +916,7 @@ msgstr "Define how notifications are sent to users, like Email or Webhook."
#: src/pages/outposts/ServiceConnectionListPage.ts:101
#: src/pages/policies/PolicyListPage.ts:115
#: src/pages/property-mappings/PropertyMappingListPage.ts:104
#: src/pages/providers/ProviderListPage.ts:98
#: src/pages/providers/ProviderListPage.ts:99
#: src/pages/sources/SourcesListPage.ts:95
#: src/pages/stages/StageListPage.ts:110
#: src/pages/stages/invitation/InvitationListPage.ts:68
@ -1056,7 +1064,8 @@ msgstr "Each provider has a different issuer, based on the application slug."
#: src/pages/outposts/ServiceConnectionListPage.ts:89
#: src/pages/policies/PolicyListPage.ts:90
#: src/pages/property-mappings/PropertyMappingListPage.ts:79
#: src/pages/providers/ProviderListPage.ts:86
#: src/pages/providers/ProviderListPage.ts:87
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:103
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:128
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:127
#: src/pages/providers/saml/SAMLProviderViewPage.ts:121
@ -1157,7 +1166,7 @@ msgstr "Enabled"
msgid "Enrollment"
msgstr "Enrollment"
#: src/pages/sources/oauth/OAuthSourceForm.ts:232
#: src/pages/sources/oauth/OAuthSourceForm.ts:233
#: src/pages/sources/plex/PlexSourceForm.ts:192
#: src/pages/sources/saml/SAMLSourceForm.ts:266
#: src/pages/stages/identification/IdentificationStageForm.ts:106
@ -1216,7 +1225,7 @@ msgstr "Event info"
msgid "Event {0}"
msgstr "Event {0}"
#: src/interfaces/AdminInterface.ts:23
#: src/interfaces/AdminInterface.ts:59
msgid "Events"
msgstr "Events"
@ -1370,19 +1379,19 @@ msgstr "Flow"
msgid "Flow Overview"
msgstr "Flow Overview"
#: src/pages/sources/oauth/OAuthSourceForm.ts:207
#: src/pages/sources/oauth/OAuthSourceForm.ts:208
#: src/pages/sources/plex/PlexSourceForm.ts:167
#: src/pages/sources/saml/SAMLSourceForm.ts:220
msgid "Flow settings"
msgstr "Flow settings"
#: src/pages/sources/oauth/OAuthSourceForm.ts:229
#: src/pages/sources/oauth/OAuthSourceForm.ts:230
#: src/pages/sources/plex/PlexSourceForm.ts:189
#: src/pages/sources/saml/SAMLSourceForm.ts:263
msgid "Flow to use when authenticating existing users."
msgstr "Flow to use when authenticating existing users."
#: src/pages/sources/oauth/OAuthSourceForm.ts:250
#: src/pages/sources/oauth/OAuthSourceForm.ts:251
#: src/pages/sources/plex/PlexSourceForm.ts:210
#: src/pages/sources/saml/SAMLSourceForm.ts:284
msgid "Flow to use when enrolling new users."
@ -1401,6 +1410,10 @@ msgstr "Flow used by an authenticated user to configure their password. If empty
msgid "Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage."
msgstr "Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage."
#: src/pages/providers/ldap/LDAPProviderForm.ts:74
msgid "Flow used for users to authenticate. Currently only identification and password stages are supported."
msgstr "Flow used for users to authenticate. Currently only identification and password stages are supported."
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:76
#: src/pages/providers/proxy/ProxyProviderForm.ts:118
#: src/pages/providers/saml/SAMLProviderForm.ts:73
@ -1408,8 +1421,8 @@ msgstr "Flow used by an authenticated user to configure this Stage. If empty, us
msgid "Flow used when authorizing this provider."
msgstr "Flow used when authorizing this provider."
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:82
#: src/interfaces/AdminInterface.ts:84
#: src/pages/flows/FlowListPage.ts:28
#: src/pages/stages/StageListPage.ts:66
msgid "Flows"
@ -1468,6 +1481,7 @@ msgstr "Go to previous page"
#: src/pages/groups/GroupListPage.ts:74
#: src/pages/policies/PolicyBindingForm.ts:125
#: src/pages/policies/PolicyBindingForm.ts:161
#: src/pages/providers/ldap/LDAPProviderForm.ts:77
msgid "Group"
msgstr "Group"
@ -1491,7 +1505,7 @@ msgstr "Group users together and give them permissions based on the membership."
msgid "Group {0}"
msgstr "Group {0}"
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:103
#: src/pages/groups/GroupListPage.ts:27
msgid "Groups"
msgstr "Groups"
@ -1526,7 +1540,7 @@ msgstr "Hide service-accounts"
#: src/pages/events/RuleForm.ts:93
#: src/pages/groups/GroupForm.ts:131
#: src/pages/outposts/OutpostForm.ts:98
#: src/pages/outposts/OutpostForm.ts:110
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:188
#: src/pages/providers/saml/SAMLProviderForm.ts:177
#: src/pages/sources/ldap/LDAPSourceForm.ts:167
@ -1560,7 +1574,7 @@ msgstr "Icon"
msgid "Identifier"
msgstr "Identifier"
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:98
msgid "Identity & Cryptography"
msgstr "Identity & Cryptography"
@ -1630,7 +1644,7 @@ msgstr "Internal host SSL Validation"
msgid "Invalidation"
msgstr "Invalidation"
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:93
#: src/pages/stages/invitation/InvitationListPage.ts:28
msgid "Invitations"
msgstr "Invitations"
@ -1670,6 +1684,14 @@ msgstr "Keypair which is used to sign outgoing requests. Leave empty to disable
msgid "Kubeconfig"
msgstr "Kubeconfig"
#: src/pages/outposts/OutpostForm.ts:58
msgid "LDAP (Technical preview)"
msgstr "LDAP (Technical preview)"
#: src/pages/providers/ldap/LDAPProviderForm.ts:101
msgid "LDAP DN under which bind requests and search requests can be made."
msgstr "LDAP DN under which bind requests and search requests can be made."
#: src/pages/admin-overview/cards/LDAPSyncStatusCardContainer.ts:24
msgid "LDAP Sync status {0}"
msgstr "LDAP Sync status {0}"
@ -1715,7 +1737,7 @@ msgstr "Launch URL"
msgid "Let the user identify themselves with their username or Email address."
msgstr "Let the user identify themselves with their username or Email address."
#: src/interfaces/AdminInterface.ts:16
#: src/interfaces/AdminInterface.ts:22
msgid "Library"
msgstr "Library"
@ -1769,8 +1791,9 @@ msgstr "Loading"
#: src/pages/flows/StageBindingForm.ts:106
#: src/pages/groups/GroupForm.ts:77
#: src/pages/groups/GroupForm.ts:127
#: src/pages/outposts/OutpostForm.ts:74
#: src/pages/outposts/OutpostForm.ts:96
#: src/pages/outposts/OutpostForm.ts:75
#: src/pages/outposts/OutpostForm.ts:97
#: src/pages/outposts/OutpostForm.ts:108
#: src/pages/outposts/ServiceConnectionDockerForm.ts:86
#: src/pages/outposts/ServiceConnectionDockerForm.ts:102
#: src/pages/policies/PolicyBindingForm.ts:157
@ -1780,6 +1803,8 @@ msgstr "Loading"
#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts:88
#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts:108
#: src/pages/property-mappings/PropertyMappingTestForm.ts:61
#: src/pages/providers/ldap/LDAPProviderForm.ts:72
#: src/pages/providers/ldap/LDAPProviderForm.ts:86
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:74
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:185
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:207
@ -1793,9 +1818,9 @@ msgstr "Loading"
#: src/pages/providers/saml/SAMLProviderImportForm.ts:55
#: src/pages/sources/ldap/LDAPSourceForm.ts:164
#: src/pages/sources/ldap/LDAPSourceForm.ts:190
#: src/pages/sources/oauth/OAuthSourceForm.ts:199
#: src/pages/sources/oauth/OAuthSourceForm.ts:227
#: src/pages/sources/oauth/OAuthSourceForm.ts:248
#: src/pages/sources/oauth/OAuthSourceForm.ts:200
#: src/pages/sources/oauth/OAuthSourceForm.ts:228
#: src/pages/sources/oauth/OAuthSourceForm.ts:249
#: src/pages/sources/plex/PlexSourceForm.ts:187
#: src/pages/sources/plex/PlexSourceForm.ts:208
#: src/pages/sources/saml/SAMLSourceForm.ts:126
@ -1845,7 +1870,7 @@ msgstr "Logins over the last 24 hours"
msgid "Logout URL"
msgstr "Logout URL"
#: src/interfaces/AdminInterface.ts:23
#: src/interfaces/AdminInterface.ts:61
msgid "Logs"
msgstr "Logs"
@ -1917,7 +1942,7 @@ msgstr "Mode"
msgid "Model Name"
msgstr "Model Name"
#: src/interfaces/AdminInterface.ts:17
#: src/interfaces/AdminInterface.ts:26
msgid "Monitor"
msgstr "Monitor"
@ -1953,7 +1978,9 @@ msgstr "Monitor"
#: src/pages/property-mappings/PropertyMappingListPage.ts:54
#: src/pages/property-mappings/PropertyMappingSAMLForm.ts:52
#: src/pages/property-mappings/PropertyMappingScopeForm.ts:52
#: src/pages/providers/ProviderListPage.ts:52
#: src/pages/providers/ProviderListPage.ts:53
#: src/pages/providers/ldap/LDAPProviderForm.ts:54
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:64
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:56
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:73
#: src/pages/providers/proxy/ProxyProviderForm.ts:98
@ -2127,12 +2154,12 @@ msgstr "Not you?"
msgid "Notice"
msgstr "Notice"
#: src/interfaces/AdminInterface.ts:23
#: src/interfaces/AdminInterface.ts:64
#: src/pages/events/RuleListPage.ts:29
msgid "Notification Rules"
msgstr "Notification Rules"
#: src/interfaces/AdminInterface.ts:23
#: src/interfaces/AdminInterface.ts:67
#: src/pages/events/TransportListPage.ts:28
msgid "Notification Transports"
msgstr "Notification Transports"
@ -2253,15 +2280,12 @@ msgstr "Outpost"
msgid "Outpost Deployment Info"
msgstr "Outpost Deployment Info"
#: src/interfaces/AdminInterface.ts:20
msgid "Outpost Service Connections"
msgstr "Outpost Service Connections"
#: src/pages/outposts/ServiceConnectionListPage.ts:94
msgid "Outpost Service-connection"
msgstr "Outpost Service-connection"
#: src/interfaces/AdminInterface.ts:20
#: src/interfaces/AdminInterface.ts:49
#: src/interfaces/AdminInterface.ts:51
#: src/pages/outposts/OutpostListPage.ts:29
msgid "Outposts"
msgstr "Outposts"
@ -2270,8 +2294,9 @@ msgstr "Outposts"
msgid "Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies."
msgstr "Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies."
#: src/interfaces/AdminInterface.ts:17
#: src/interfaces/AdminInterface.ts:28
#: src/pages/applications/ApplicationViewPage.ts:59
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:56
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:65
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:56
#: src/pages/providers/saml/SAMLProviderViewPage.ts:58
@ -2331,7 +2356,7 @@ msgstr "Please enter your TOTP Code"
msgid "Please enter your password"
msgstr "Please enter your password"
#: src/interfaces/AdminInterface.ts:26
#: src/interfaces/AdminInterface.ts:74
#: src/pages/flows/FlowListPage.ts:50
#: src/pages/policies/PolicyListPage.ts:38
msgid "Policies"
@ -2434,7 +2459,7 @@ msgstr "Prompt"
msgid "Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time."
msgstr "Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time."
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:90
#: src/pages/stages/prompt/PromptListPage.ts:28
msgid "Prompts"
msgstr "Prompts"
@ -2443,7 +2468,7 @@ msgstr "Prompts"
msgid "Property Mapping"
msgstr "Property Mapping"
#: src/interfaces/AdminInterface.ts:26
#: src/interfaces/AdminInterface.ts:77
#: src/pages/property-mappings/PropertyMappingListPage.ts:35
msgid "Property Mappings"
msgstr "Property Mappings"
@ -2460,6 +2485,7 @@ msgstr "Property mappings used to group creation."
msgid "Property mappings used to user creation."
msgstr "Property mappings used to user creation."
#: src/pages/providers/ldap/LDAPProviderForm.ts:93
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:81
#: src/pages/providers/proxy/ProxyProviderForm.ts:123
#: src/pages/providers/saml/SAMLProviderForm.ts:78
@ -2469,7 +2495,7 @@ msgstr "Property mappings used to user creation."
msgid "Protocol settings"
msgstr "Protocol settings"
#: src/pages/providers/ProviderListPage.ts:37
#: src/pages/providers/ProviderListPage.ts:38
msgid "Provide support for protocols like SAML and OAuth to assigned applications."
msgstr "Provide support for protocols like SAML and OAuth to assigned applications."
@ -2486,14 +2512,14 @@ msgstr "Provider"
msgid "Provider Type"
msgstr "Provider Type"
#: src/pages/sources/oauth/OAuthSourceForm.ts:160
#: src/pages/sources/oauth/OAuthSourceForm.ts:161
msgid "Provider type"
msgstr "Provider type"
#: src/interfaces/AdminInterface.ts:20
#: src/pages/outposts/OutpostForm.ts:82
#: src/interfaces/AdminInterface.ts:44
#: src/pages/outposts/OutpostForm.ts:83
#: src/pages/outposts/OutpostListPage.ts:51
#: src/pages/providers/ProviderListPage.ts:34
#: src/pages/providers/ProviderListPage.ts:35
msgid "Providers"
msgstr "Providers"
@ -2602,7 +2628,7 @@ msgstr "Regular expressions for which authentication is not required. Each new l
msgid "Related"
msgstr "Related"
#: src/interfaces/Interface.ts:52
#: src/interfaces/Interface.ts:56
msgid "Reload"
msgstr "Reload"
@ -2637,7 +2663,7 @@ msgstr "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."
msgid "Reset Password"
msgstr "Reset Password"
#: src/interfaces/AdminInterface.ts:20
#: src/interfaces/AdminInterface.ts:36
msgid "Resources"
msgstr "Resources"
@ -2787,7 +2813,7 @@ msgstr "Select which transports should be used to notify the user. If none are s
msgid "Selected policies are executed when the stage is submitted to validate the data."
msgstr "Selected policies are executed when the stage is submitted to validate the data."
#: src/pages/outposts/OutpostForm.ts:76
#: src/pages/outposts/OutpostForm.ts:77
msgid "Selecting a service-connection enables the management of the outpost by authentik."
msgstr "Selecting a service-connection enables the management of the outpost by authentik."
@ -2824,11 +2850,15 @@ msgstr "Server URI"
msgid "Server validation of credential failed: {err}"
msgstr "Server validation of credential failed: {err}"
#: src/interfaces/AdminInterface.ts:54
msgid "Service Connections"
msgstr "Service Connections"
#: src/pages/providers/saml/SAMLProviderForm.ts:94
msgid "Service Provider Binding"
msgstr "Service Provider Binding"
#: src/pages/outposts/OutpostForm.ts:61
#: src/pages/outposts/OutpostForm.ts:62
msgid "Service connection"
msgstr "Service connection"
@ -2853,7 +2883,7 @@ msgid "Set a custom HTTP-Basic Authentication header based on values from authen
msgstr "Set a custom HTTP-Basic Authentication header based on values from authentik."
#: src/pages/groups/GroupForm.ts:139
#: src/pages/outposts/OutpostForm.ts:109
#: src/pages/outposts/OutpostForm.ts:121
#: src/pages/outposts/ServiceConnectionKubernetesForm.ts:73
#: src/pages/policies/PolicyTestForm.ts:79
#: src/pages/users/UserForm.ts:82
@ -2920,7 +2950,7 @@ msgstr "Slug"
msgid "Something went wrong! Please try again later."
msgstr "Something went wrong! Please try again later."
#: src/pages/providers/ProviderListPage.ts:91
#: src/pages/providers/ProviderListPage.ts:92
#: src/pages/sources/SourcesListPage.ts:88
msgid "Source"
msgstr "Source"
@ -2929,7 +2959,7 @@ msgstr "Source"
msgid "Source {0}"
msgstr "Source {0}"
#: src/interfaces/AdminInterface.ts:20
#: src/interfaces/AdminInterface.ts:41
#: src/pages/sources/SourcesListPage.ts:31
msgid "Sources"
msgstr "Sources"
@ -2988,7 +3018,7 @@ msgstr "Stage used to validate any authenticator. This stage should be used duri
msgid "Stage-specific settings"
msgstr "Stage-specific settings"
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:87
#: src/pages/flows/FlowListPage.ts:49
#: src/pages/stages/StageListPage.ts:44
#: src/pages/stages/prompt/PromptListPage.ts:50
@ -3033,7 +3063,7 @@ msgstr "Status: Disabled"
msgid "Status: Enabled"
msgstr "Status: Enabled"
#: src/interfaces/Interface.ts:63
#: src/interfaces/Interface.ts:67
msgid "Stop impersonation"
msgstr "Stop impersonation"
@ -3114,6 +3144,7 @@ msgstr "Successfully created policy."
msgid "Successfully created prompt."
msgstr "Successfully created prompt."
#: src/pages/providers/ldap/LDAPProviderForm.ts:47
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:49
#: src/pages/providers/proxy/ProxyProviderForm.ts:51
#: src/pages/providers/saml/SAMLProviderForm.ts:46
@ -3251,6 +3282,7 @@ msgstr "Successfully updated policy."
msgid "Successfully updated prompt."
msgstr "Successfully updated prompt."
#: src/pages/providers/ldap/LDAPProviderForm.ts:44
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:46
#: src/pages/providers/proxy/ProxyProviderForm.ts:48
#: src/pages/providers/saml/SAMLProviderForm.ts:43
@ -3345,7 +3377,7 @@ msgstr "Sync users"
msgid "System Overview"
msgstr "System Overview"
#: src/interfaces/AdminInterface.ts:17
#: src/interfaces/AdminInterface.ts:31
#: src/pages/system-tasks/SystemTaskListPage.ts:27
msgid "System Tasks"
msgstr "System Tasks"
@ -3497,7 +3529,7 @@ msgid "Token validity"
msgstr "Token validity"
#: src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts:62
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:109
#: src/pages/tokens/TokenListPage.ts:26
#: src/pages/user-settings/UserSettingsPage.ts:77
msgid "Tokens"
@ -3524,7 +3556,7 @@ msgstr "Transports"
#: src/pages/outposts/ServiceConnectionListPage.ts:54
#: src/pages/policies/PolicyListPage.ts:57
#: src/pages/property-mappings/PropertyMappingListPage.ts:55
#: src/pages/providers/ProviderListPage.ts:54
#: src/pages/providers/ProviderListPage.ts:55
#: src/pages/sources/SourcesListPage.ts:53
#: src/pages/stages/prompt/PromptForm.ts:97
#: src/pages/stages/prompt/PromptListPage.ts:48
@ -3600,7 +3632,8 @@ msgstr "Up-to-date!"
#: src/pages/policies/BoundPoliciesList.ts:129
#: src/pages/policies/PolicyListPage.ts:77
#: src/pages/property-mappings/PropertyMappingListPage.ts:66
#: src/pages/providers/ProviderListPage.ts:73
#: src/pages/providers/ProviderListPage.ts:74
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:93
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:118
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:117
#: src/pages/providers/saml/SAMLProviderViewPage.ts:111
@ -3644,6 +3677,10 @@ msgstr "Update Flow"
msgid "Update Group"
msgstr "Update Group"
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:96
msgid "Update LDAP Provider"
msgstr "Update LDAP Provider"
#: src/pages/sources/ldap/LDAPSourceViewPage.ts:98
msgid "Update LDAP Source"
msgstr "Update LDAP Source"
@ -3711,7 +3748,7 @@ msgstr "Update details"
#: src/pages/policies/BoundPoliciesList.ts:71
#: src/pages/policies/PolicyListPage.ts:80
#: src/pages/property-mappings/PropertyMappingListPage.ts:69
#: src/pages/providers/ProviderListPage.ts:76
#: src/pages/providers/ProviderListPage.ts:77
#: src/pages/sources/SourcesListPage.ts:73
#: src/pages/stages/StageListPage.ts:88
#: src/pages/users/UserActiveForm.ts:41
@ -3843,7 +3880,7 @@ msgstr "Username"
msgid "Username: Same as Text input, but checks for and prevents duplicate usernames."
msgstr "Username: Same as Text input, but checks for and prevents duplicate usernames."
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:100
#: src/pages/admin-overview/AdminOverviewPage.ts:50
#: src/pages/users/UserListPage.ts:33
msgid "Users"
@ -3853,6 +3890,10 @@ msgstr "Users"
msgid "Users added to this group will be superusers."
msgstr "Users added to this group will be superusers."
#: src/pages/providers/ldap/LDAPProviderForm.ts:88
msgid "Users in the selected group can do search queries."
msgstr "Users in the selected group can do search queries."
#: src/pages/events/EventInfo.ts:108
msgid "Using flow"
msgstr "Using flow"
@ -3930,7 +3971,7 @@ msgstr "Warning: At least one Provider has no application assigned."
msgid "Warning: Policy is not assigned."
msgstr "Warning: Policy is not assigned."
#: src/pages/providers/ProviderListPage.ts:68
#: src/pages/providers/ProviderListPage.ts:69
msgid "Warning: Provider not assigned to any application."
msgstr "Warning: Provider not assigned to any application."
@ -4021,7 +4062,7 @@ msgstr "X509 Subject"
msgid "Yes"
msgstr "Yes"
#: src/interfaces/Interface.ts:61
#: src/interfaces/Interface.ts:65
msgid "You're currently impersonating {0}."
msgstr "You're currently impersonating {0}."

View file

@ -32,7 +32,7 @@ msgstr ""
msgid "8 digits, not compatible with apps like Google Authenticator"
msgstr ""
#: src/interfaces/Interface.ts:50
#: src/interfaces/Interface.ts:54
msgid "A newer version of the frontend is available."
msgstr ""
@ -184,7 +184,7 @@ msgstr ""
#: src/elements/user/UserConsentList.ts:29
#: src/pages/admin-overview/TopApplicationsTable.ts:42
#: src/pages/applications/ApplicationListPage.ts:105
#: src/pages/providers/ProviderListPage.ts:53
#: src/pages/providers/ProviderListPage.ts:54
msgid "Application"
msgstr ""
@ -200,7 +200,7 @@ msgstr ""
msgid "Application's display Name."
msgstr ""
#: src/interfaces/AdminInterface.ts:20
#: src/interfaces/AdminInterface.ts:38
#: src/pages/LibraryPage.ts:93
#: src/pages/LibraryPage.ts:130
#: src/pages/applications/ApplicationListPage.ts:28
@ -247,7 +247,8 @@ msgstr ""
msgid "Assertions is empty"
msgstr ""
#: src/pages/providers/ProviderListPage.ts:65
#: src/pages/providers/ProviderListPage.ts:66
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:72
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:81
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:72
#: src/pages/providers/saml/SAMLProviderViewPage.ts:74
@ -285,7 +286,7 @@ msgstr ""
msgid "Authentication"
msgstr ""
#: src/pages/sources/oauth/OAuthSourceForm.ts:211
#: src/pages/sources/oauth/OAuthSourceForm.ts:212
#: src/pages/sources/plex/PlexSourceForm.ts:171
#: src/pages/sources/saml/SAMLSourceForm.ts:245
msgid "Authentication flow"
@ -349,6 +350,8 @@ msgstr ""
msgid "Backup status"
msgstr ""
#: src/pages/providers/ldap/LDAPProviderForm.ts:97
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:82
#: src/pages/sources/ldap/LDAPSourceForm.ts:131
#: src/pages/sources/ldap/LDAPSourceViewPage.ts:80
msgid "Base DN"
@ -382,6 +385,10 @@ msgstr ""
msgid "Bind Password"
msgstr ""
#: src/pages/providers/ldap/LDAPProviderForm.ts:60
msgid "Bind flow"
msgstr ""
#: src/pages/flows/BoundStagesList.ts:127
#: src/pages/flows/BoundStagesList.ts:175
msgid "Bind stage"
@ -466,7 +473,7 @@ msgstr ""
msgid "Certificate/Key used for authentication. Can be left empty for no authentication."
msgstr ""
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:106
msgid "Certificates"
msgstr ""
@ -480,6 +487,7 @@ msgstr ""
#: src/pages/applications/ApplicationViewPage.ts:136
#: src/pages/flows/FlowViewPage.ts:110
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:111
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:136
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:135
#: src/pages/providers/saml/SAMLProviderViewPage.ts:129
@ -589,7 +597,7 @@ msgstr ""
msgid "Confidential clients are capable of maintaining the confidentiality of their credentials. Public clients are incapable."
msgstr ""
#: src/pages/outposts/OutpostForm.ts:106
#: src/pages/outposts/OutpostForm.ts:118
msgid "Configuration"
msgstr ""
@ -745,8 +753,8 @@ msgstr ""
#: src/pages/policies/PolicyListPage.ts:133
#: src/pages/property-mappings/PropertyMappingListPage.ts:113
#: src/pages/property-mappings/PropertyMappingListPage.ts:122
#: src/pages/providers/ProviderListPage.ts:107
#: src/pages/providers/ProviderListPage.ts:116
#: src/pages/providers/ProviderListPage.ts:108
#: src/pages/providers/ProviderListPage.ts:117
#: src/pages/providers/RelatedApplicationButton.ts:27
#: src/pages/providers/RelatedApplicationButton.ts:35
#: src/pages/sources/SourcesListPage.ts:114
@ -846,7 +854,7 @@ msgstr ""
#: src/pages/policies/BoundPoliciesList.ts:192
#: src/pages/policies/PolicyListPage.ts:136
#: src/pages/property-mappings/PropertyMappingListPage.ts:125
#: src/pages/providers/ProviderListPage.ts:119
#: src/pages/providers/ProviderListPage.ts:120
#: src/pages/sources/SourcesListPage.ts:126
#: src/pages/stages/StageListPage.ts:131
msgid "Create {0}"
@ -866,7 +874,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
#: src/interfaces/AdminInterface.ts:26
#: src/interfaces/AdminInterface.ts:72
msgid "Customisation"
msgstr ""
@ -902,7 +910,7 @@ msgstr ""
#: src/pages/outposts/ServiceConnectionListPage.ts:101
#: src/pages/policies/PolicyListPage.ts:115
#: src/pages/property-mappings/PropertyMappingListPage.ts:104
#: src/pages/providers/ProviderListPage.ts:98
#: src/pages/providers/ProviderListPage.ts:99
#: src/pages/sources/SourcesListPage.ts:95
#: src/pages/stages/StageListPage.ts:110
#: src/pages/stages/invitation/InvitationListPage.ts:68
@ -1048,7 +1056,8 @@ msgstr ""
#: src/pages/outposts/ServiceConnectionListPage.ts:89
#: src/pages/policies/PolicyListPage.ts:90
#: src/pages/property-mappings/PropertyMappingListPage.ts:79
#: src/pages/providers/ProviderListPage.ts:86
#: src/pages/providers/ProviderListPage.ts:87
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:103
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:128
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:127
#: src/pages/providers/saml/SAMLProviderViewPage.ts:121
@ -1149,7 +1158,7 @@ msgstr ""
msgid "Enrollment"
msgstr ""
#: src/pages/sources/oauth/OAuthSourceForm.ts:232
#: src/pages/sources/oauth/OAuthSourceForm.ts:233
#: src/pages/sources/plex/PlexSourceForm.ts:192
#: src/pages/sources/saml/SAMLSourceForm.ts:266
#: src/pages/stages/identification/IdentificationStageForm.ts:106
@ -1208,7 +1217,7 @@ msgstr ""
msgid "Event {0}"
msgstr ""
#: src/interfaces/AdminInterface.ts:23
#: src/interfaces/AdminInterface.ts:59
msgid "Events"
msgstr ""
@ -1362,19 +1371,19 @@ msgstr ""
msgid "Flow Overview"
msgstr ""
#: src/pages/sources/oauth/OAuthSourceForm.ts:207
#: src/pages/sources/oauth/OAuthSourceForm.ts:208
#: src/pages/sources/plex/PlexSourceForm.ts:167
#: src/pages/sources/saml/SAMLSourceForm.ts:220
msgid "Flow settings"
msgstr ""
#: src/pages/sources/oauth/OAuthSourceForm.ts:229
#: src/pages/sources/oauth/OAuthSourceForm.ts:230
#: src/pages/sources/plex/PlexSourceForm.ts:189
#: src/pages/sources/saml/SAMLSourceForm.ts:263
msgid "Flow to use when authenticating existing users."
msgstr ""
#: src/pages/sources/oauth/OAuthSourceForm.ts:250
#: src/pages/sources/oauth/OAuthSourceForm.ts:251
#: src/pages/sources/plex/PlexSourceForm.ts:210
#: src/pages/sources/saml/SAMLSourceForm.ts:284
msgid "Flow to use when enrolling new users."
@ -1393,6 +1402,10 @@ msgstr ""
msgid "Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage."
msgstr ""
#: src/pages/providers/ldap/LDAPProviderForm.ts:74
msgid "Flow used for users to authenticate. Currently only identification and password stages are supported."
msgstr ""
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:76
#: src/pages/providers/proxy/ProxyProviderForm.ts:118
#: src/pages/providers/saml/SAMLProviderForm.ts:73
@ -1400,8 +1413,8 @@ msgstr ""
msgid "Flow used when authorizing this provider."
msgstr ""
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:82
#: src/interfaces/AdminInterface.ts:84
#: src/pages/flows/FlowListPage.ts:28
#: src/pages/stages/StageListPage.ts:66
msgid "Flows"
@ -1460,6 +1473,7 @@ msgstr ""
#: src/pages/groups/GroupListPage.ts:74
#: src/pages/policies/PolicyBindingForm.ts:125
#: src/pages/policies/PolicyBindingForm.ts:161
#: src/pages/providers/ldap/LDAPProviderForm.ts:77
msgid "Group"
msgstr ""
@ -1483,7 +1497,7 @@ msgstr ""
msgid "Group {0}"
msgstr ""
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:103
#: src/pages/groups/GroupListPage.ts:27
msgid "Groups"
msgstr ""
@ -1518,7 +1532,7 @@ msgstr ""
#: src/pages/events/RuleForm.ts:93
#: src/pages/groups/GroupForm.ts:131
#: src/pages/outposts/OutpostForm.ts:98
#: src/pages/outposts/OutpostForm.ts:110
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:188
#: src/pages/providers/saml/SAMLProviderForm.ts:177
#: src/pages/sources/ldap/LDAPSourceForm.ts:167
@ -1552,7 +1566,7 @@ msgstr ""
msgid "Identifier"
msgstr ""
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:98
msgid "Identity & Cryptography"
msgstr ""
@ -1622,7 +1636,7 @@ msgstr ""
msgid "Invalidation"
msgstr ""
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:93
#: src/pages/stages/invitation/InvitationListPage.ts:28
msgid "Invitations"
msgstr ""
@ -1662,6 +1676,14 @@ msgstr ""
msgid "Kubeconfig"
msgstr ""
#: src/pages/outposts/OutpostForm.ts:58
msgid "LDAP (Technical preview)"
msgstr ""
#: src/pages/providers/ldap/LDAPProviderForm.ts:101
msgid "LDAP DN under which bind requests and search requests can be made."
msgstr ""
#: src/pages/admin-overview/cards/LDAPSyncStatusCardContainer.ts:24
msgid "LDAP Sync status {0}"
msgstr ""
@ -1707,7 +1729,7 @@ msgstr ""
msgid "Let the user identify themselves with their username or Email address."
msgstr ""
#: src/interfaces/AdminInterface.ts:16
#: src/interfaces/AdminInterface.ts:22
msgid "Library"
msgstr ""
@ -1761,8 +1783,9 @@ msgstr ""
#: src/pages/flows/StageBindingForm.ts:106
#: src/pages/groups/GroupForm.ts:77
#: src/pages/groups/GroupForm.ts:127
#: src/pages/outposts/OutpostForm.ts:74
#: src/pages/outposts/OutpostForm.ts:96
#: src/pages/outposts/OutpostForm.ts:75
#: src/pages/outposts/OutpostForm.ts:97
#: src/pages/outposts/OutpostForm.ts:108
#: src/pages/outposts/ServiceConnectionDockerForm.ts:86
#: src/pages/outposts/ServiceConnectionDockerForm.ts:102
#: src/pages/policies/PolicyBindingForm.ts:157
@ -1772,6 +1795,8 @@ msgstr ""
#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts:88
#: src/pages/policies/event_matcher/EventMatcherPolicyForm.ts:108
#: src/pages/property-mappings/PropertyMappingTestForm.ts:61
#: src/pages/providers/ldap/LDAPProviderForm.ts:72
#: src/pages/providers/ldap/LDAPProviderForm.ts:86
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:74
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:185
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:207
@ -1785,9 +1810,9 @@ msgstr ""
#: src/pages/providers/saml/SAMLProviderImportForm.ts:55
#: src/pages/sources/ldap/LDAPSourceForm.ts:164
#: src/pages/sources/ldap/LDAPSourceForm.ts:190
#: src/pages/sources/oauth/OAuthSourceForm.ts:199
#: src/pages/sources/oauth/OAuthSourceForm.ts:227
#: src/pages/sources/oauth/OAuthSourceForm.ts:248
#: src/pages/sources/oauth/OAuthSourceForm.ts:200
#: src/pages/sources/oauth/OAuthSourceForm.ts:228
#: src/pages/sources/oauth/OAuthSourceForm.ts:249
#: src/pages/sources/plex/PlexSourceForm.ts:187
#: src/pages/sources/plex/PlexSourceForm.ts:208
#: src/pages/sources/saml/SAMLSourceForm.ts:126
@ -1837,7 +1862,7 @@ msgstr ""
msgid "Logout URL"
msgstr ""
#: src/interfaces/AdminInterface.ts:23
#: src/interfaces/AdminInterface.ts:61
msgid "Logs"
msgstr ""
@ -1909,7 +1934,7 @@ msgstr ""
msgid "Model Name"
msgstr ""
#: src/interfaces/AdminInterface.ts:17
#: src/interfaces/AdminInterface.ts:26
msgid "Monitor"
msgstr ""
@ -1945,7 +1970,9 @@ msgstr ""
#: src/pages/property-mappings/PropertyMappingListPage.ts:54
#: src/pages/property-mappings/PropertyMappingSAMLForm.ts:52
#: src/pages/property-mappings/PropertyMappingScopeForm.ts:52
#: src/pages/providers/ProviderListPage.ts:52
#: src/pages/providers/ProviderListPage.ts:53
#: src/pages/providers/ldap/LDAPProviderForm.ts:54
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:64
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:56
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:73
#: src/pages/providers/proxy/ProxyProviderForm.ts:98
@ -2119,12 +2146,12 @@ msgstr ""
msgid "Notice"
msgstr ""
#: src/interfaces/AdminInterface.ts:23
#: src/interfaces/AdminInterface.ts:64
#: src/pages/events/RuleListPage.ts:29
msgid "Notification Rules"
msgstr ""
#: src/interfaces/AdminInterface.ts:23
#: src/interfaces/AdminInterface.ts:67
#: src/pages/events/TransportListPage.ts:28
msgid "Notification Transports"
msgstr ""
@ -2245,15 +2272,12 @@ msgstr ""
msgid "Outpost Deployment Info"
msgstr ""
#: src/interfaces/AdminInterface.ts:20
msgid "Outpost Service Connections"
msgstr ""
#: src/pages/outposts/ServiceConnectionListPage.ts:94
msgid "Outpost Service-connection"
msgstr ""
#: src/interfaces/AdminInterface.ts:20
#: src/interfaces/AdminInterface.ts:49
#: src/interfaces/AdminInterface.ts:51
#: src/pages/outposts/OutpostListPage.ts:29
msgid "Outposts"
msgstr ""
@ -2262,8 +2286,9 @@ msgstr ""
msgid "Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies."
msgstr ""
#: src/interfaces/AdminInterface.ts:17
#: src/interfaces/AdminInterface.ts:28
#: src/pages/applications/ApplicationViewPage.ts:59
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:56
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:65
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:56
#: src/pages/providers/saml/SAMLProviderViewPage.ts:58
@ -2323,7 +2348,7 @@ msgstr ""
msgid "Please enter your password"
msgstr ""
#: src/interfaces/AdminInterface.ts:26
#: src/interfaces/AdminInterface.ts:74
#: src/pages/flows/FlowListPage.ts:50
#: src/pages/policies/PolicyListPage.ts:38
msgid "Policies"
@ -2426,7 +2451,7 @@ msgstr ""
msgid "Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time."
msgstr ""
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:90
#: src/pages/stages/prompt/PromptListPage.ts:28
msgid "Prompts"
msgstr ""
@ -2435,7 +2460,7 @@ msgstr ""
msgid "Property Mapping"
msgstr ""
#: src/interfaces/AdminInterface.ts:26
#: src/interfaces/AdminInterface.ts:77
#: src/pages/property-mappings/PropertyMappingListPage.ts:35
msgid "Property Mappings"
msgstr ""
@ -2452,6 +2477,7 @@ msgstr ""
msgid "Property mappings used to user creation."
msgstr ""
#: src/pages/providers/ldap/LDAPProviderForm.ts:93
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:81
#: src/pages/providers/proxy/ProxyProviderForm.ts:123
#: src/pages/providers/saml/SAMLProviderForm.ts:78
@ -2461,7 +2487,7 @@ msgstr ""
msgid "Protocol settings"
msgstr ""
#: src/pages/providers/ProviderListPage.ts:37
#: src/pages/providers/ProviderListPage.ts:38
msgid "Provide support for protocols like SAML and OAuth to assigned applications."
msgstr ""
@ -2478,14 +2504,14 @@ msgstr ""
msgid "Provider Type"
msgstr ""
#: src/pages/sources/oauth/OAuthSourceForm.ts:160
#: src/pages/sources/oauth/OAuthSourceForm.ts:161
msgid "Provider type"
msgstr ""
#: src/interfaces/AdminInterface.ts:20
#: src/pages/outposts/OutpostForm.ts:82
#: src/interfaces/AdminInterface.ts:44
#: src/pages/outposts/OutpostForm.ts:83
#: src/pages/outposts/OutpostListPage.ts:51
#: src/pages/providers/ProviderListPage.ts:34
#: src/pages/providers/ProviderListPage.ts:35
msgid "Providers"
msgstr ""
@ -2594,7 +2620,7 @@ msgstr ""
msgid "Related"
msgstr ""
#: src/interfaces/Interface.ts:52
#: src/interfaces/Interface.ts:56
msgid "Reload"
msgstr ""
@ -2629,7 +2655,7 @@ msgstr ""
msgid "Reset Password"
msgstr ""
#: src/interfaces/AdminInterface.ts:20
#: src/interfaces/AdminInterface.ts:36
msgid "Resources"
msgstr ""
@ -2779,7 +2805,7 @@ msgstr ""
msgid "Selected policies are executed when the stage is submitted to validate the data."
msgstr ""
#: src/pages/outposts/OutpostForm.ts:76
#: src/pages/outposts/OutpostForm.ts:77
msgid "Selecting a service-connection enables the management of the outpost by authentik."
msgstr ""
@ -2816,11 +2842,15 @@ msgstr ""
msgid "Server validation of credential failed: {err}"
msgstr ""
#: src/interfaces/AdminInterface.ts:54
msgid "Service Connections"
msgstr ""
#: src/pages/providers/saml/SAMLProviderForm.ts:94
msgid "Service Provider Binding"
msgstr ""
#: src/pages/outposts/OutpostForm.ts:61
#: src/pages/outposts/OutpostForm.ts:62
msgid "Service connection"
msgstr ""
@ -2845,7 +2875,7 @@ msgid "Set a custom HTTP-Basic Authentication header based on values from authen
msgstr ""
#: src/pages/groups/GroupForm.ts:139
#: src/pages/outposts/OutpostForm.ts:109
#: src/pages/outposts/OutpostForm.ts:121
#: src/pages/outposts/ServiceConnectionKubernetesForm.ts:73
#: src/pages/policies/PolicyTestForm.ts:79
#: src/pages/users/UserForm.ts:82
@ -2912,7 +2942,7 @@ msgstr ""
msgid "Something went wrong! Please try again later."
msgstr ""
#: src/pages/providers/ProviderListPage.ts:91
#: src/pages/providers/ProviderListPage.ts:92
#: src/pages/sources/SourcesListPage.ts:88
msgid "Source"
msgstr ""
@ -2921,7 +2951,7 @@ msgstr ""
msgid "Source {0}"
msgstr ""
#: src/interfaces/AdminInterface.ts:20
#: src/interfaces/AdminInterface.ts:41
#: src/pages/sources/SourcesListPage.ts:31
msgid "Sources"
msgstr ""
@ -2980,7 +3010,7 @@ msgstr ""
msgid "Stage-specific settings"
msgstr ""
#: src/interfaces/AdminInterface.ts:29
#: src/interfaces/AdminInterface.ts:87
#: src/pages/flows/FlowListPage.ts:49
#: src/pages/stages/StageListPage.ts:44
#: src/pages/stages/prompt/PromptListPage.ts:50
@ -3025,7 +3055,7 @@ msgstr ""
msgid "Status: Enabled"
msgstr ""
#: src/interfaces/Interface.ts:63
#: src/interfaces/Interface.ts:67
msgid "Stop impersonation"
msgstr ""
@ -3106,6 +3136,7 @@ msgstr ""
msgid "Successfully created prompt."
msgstr ""
#: src/pages/providers/ldap/LDAPProviderForm.ts:47
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:49
#: src/pages/providers/proxy/ProxyProviderForm.ts:51
#: src/pages/providers/saml/SAMLProviderForm.ts:46
@ -3243,6 +3274,7 @@ msgstr ""
msgid "Successfully updated prompt."
msgstr ""
#: src/pages/providers/ldap/LDAPProviderForm.ts:44
#: src/pages/providers/oauth2/OAuth2ProviderForm.ts:46
#: src/pages/providers/proxy/ProxyProviderForm.ts:48
#: src/pages/providers/saml/SAMLProviderForm.ts:43
@ -3337,7 +3369,7 @@ msgstr ""
msgid "System Overview"
msgstr ""
#: src/interfaces/AdminInterface.ts:17
#: src/interfaces/AdminInterface.ts:31
#: src/pages/system-tasks/SystemTaskListPage.ts:27
msgid "System Tasks"
msgstr ""
@ -3485,7 +3517,7 @@ msgid "Token validity"
msgstr ""
#: src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts:62
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:109
#: src/pages/tokens/TokenListPage.ts:26
#: src/pages/user-settings/UserSettingsPage.ts:77
msgid "Tokens"
@ -3512,7 +3544,7 @@ msgstr ""
#: src/pages/outposts/ServiceConnectionListPage.ts:54
#: src/pages/policies/PolicyListPage.ts:57
#: src/pages/property-mappings/PropertyMappingListPage.ts:55
#: src/pages/providers/ProviderListPage.ts:54
#: src/pages/providers/ProviderListPage.ts:55
#: src/pages/sources/SourcesListPage.ts:53
#: src/pages/stages/prompt/PromptForm.ts:97
#: src/pages/stages/prompt/PromptListPage.ts:48
@ -3588,7 +3620,8 @@ msgstr ""
#: src/pages/policies/BoundPoliciesList.ts:129
#: src/pages/policies/PolicyListPage.ts:77
#: src/pages/property-mappings/PropertyMappingListPage.ts:66
#: src/pages/providers/ProviderListPage.ts:73
#: src/pages/providers/ProviderListPage.ts:74
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:93
#: src/pages/providers/oauth2/OAuth2ProviderViewPage.ts:118
#: src/pages/providers/proxy/ProxyProviderViewPage.ts:117
#: src/pages/providers/saml/SAMLProviderViewPage.ts:111
@ -3632,6 +3665,10 @@ msgstr ""
msgid "Update Group"
msgstr ""
#: src/pages/providers/ldap/LDAPProviderViewPage.ts:96
msgid "Update LDAP Provider"
msgstr ""
#: src/pages/sources/ldap/LDAPSourceViewPage.ts:98
msgid "Update LDAP Source"
msgstr ""
@ -3699,7 +3736,7 @@ msgstr ""
#: src/pages/policies/BoundPoliciesList.ts:71
#: src/pages/policies/PolicyListPage.ts:80
#: src/pages/property-mappings/PropertyMappingListPage.ts:69
#: src/pages/providers/ProviderListPage.ts:76
#: src/pages/providers/ProviderListPage.ts:77
#: src/pages/sources/SourcesListPage.ts:73
#: src/pages/stages/StageListPage.ts:88
#: src/pages/users/UserActiveForm.ts:41
@ -3831,7 +3868,7 @@ msgstr ""
msgid "Username: Same as Text input, but checks for and prevents duplicate usernames."
msgstr ""
#: src/interfaces/AdminInterface.ts:32
#: src/interfaces/AdminInterface.ts:100
#: src/pages/admin-overview/AdminOverviewPage.ts:50
#: src/pages/users/UserListPage.ts:33
msgid "Users"
@ -3841,6 +3878,10 @@ msgstr ""
msgid "Users added to this group will be superusers."
msgstr ""
#: src/pages/providers/ldap/LDAPProviderForm.ts:88
msgid "Users in the selected group can do search queries."
msgstr ""
#: src/pages/events/EventInfo.ts:108
msgid "Using flow"
msgstr ""
@ -3918,7 +3959,7 @@ msgstr ""
msgid "Warning: Policy is not assigned."
msgstr ""
#: src/pages/providers/ProviderListPage.ts:68
#: src/pages/providers/ProviderListPage.ts:69
msgid "Warning: Provider not assigned to any application."
msgstr ""
@ -4007,7 +4048,7 @@ msgstr ""
msgid "Yes"
msgstr ""
#: src/interfaces/Interface.ts:61
#: src/interfaces/Interface.ts:65
msgid "You're currently impersonating {0}."
msgstr ""