web/admin: add sidebar to applications
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
59493c02c4
commit
7c71c52791
|
@ -122,6 +122,10 @@ msgstr "API Token (can be used to access the API programmatically)"
|
||||||
msgid "API request failed"
|
msgid "API request failed"
|
||||||
msgstr "API request failed"
|
msgstr "API request failed"
|
||||||
|
|
||||||
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
|
msgid "About applications"
|
||||||
|
msgstr "About applications"
|
||||||
|
|
||||||
#: src/pages/sources/oauth/OAuthSourceViewPage.ts
|
#: src/pages/sources/oauth/OAuthSourceViewPage.ts
|
||||||
msgid "Access Key"
|
msgid "Access Key"
|
||||||
msgstr "Access Key"
|
msgstr "Access Key"
|
||||||
|
|
|
@ -128,6 +128,10 @@ msgstr "Jeton d'API (peut être utilisé pour accéder à l'API via un programme
|
||||||
msgid "API request failed"
|
msgid "API request failed"
|
||||||
msgstr "Requête d'API échouée"
|
msgstr "Requête d'API échouée"
|
||||||
|
|
||||||
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
|
msgid "About applications"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/sources/oauth/OAuthSourceViewPage.ts
|
#: src/pages/sources/oauth/OAuthSourceViewPage.ts
|
||||||
msgid "Access Key"
|
msgid "Access Key"
|
||||||
msgstr "Clé d'accès"
|
msgstr "Clé d'accès"
|
||||||
|
|
|
@ -122,6 +122,10 @@ msgstr ""
|
||||||
msgid "API request failed"
|
msgid "API request failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/pages/applications/ApplicationListPage.ts
|
||||||
|
msgid "About applications"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/pages/sources/oauth/OAuthSourceViewPage.ts
|
#: src/pages/sources/oauth/OAuthSourceViewPage.ts
|
||||||
msgid "Access Key"
|
msgid "Access Key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -5,12 +5,15 @@ import { customElement, property } from "lit/decorators.js";
|
||||||
import { ifDefined } from "lit/directives/if-defined.js";
|
import { ifDefined } from "lit/directives/if-defined.js";
|
||||||
|
|
||||||
import PFAvatar from "@patternfly/patternfly/components/Avatar/avatar.css";
|
import PFAvatar from "@patternfly/patternfly/components/Avatar/avatar.css";
|
||||||
|
import PFCard from "@patternfly/patternfly/components/Card/card.css";
|
||||||
|
|
||||||
import { Application, CoreApi } from "@goauthentik/api";
|
import { Application, CoreApi } from "@goauthentik/api";
|
||||||
|
|
||||||
|
import MDApplication from "../../../../website/docs/core/applications.md";
|
||||||
import { AKResponse } from "../../api/Client";
|
import { AKResponse } from "../../api/Client";
|
||||||
import { DEFAULT_CONFIG } from "../../api/Config";
|
import { DEFAULT_CONFIG } from "../../api/Config";
|
||||||
import { uiConfig } from "../../common/config";
|
import { uiConfig } from "../../common/config";
|
||||||
|
import "../../elements/Markdown";
|
||||||
import "../../elements/buttons/SpinnerButton";
|
import "../../elements/buttons/SpinnerButton";
|
||||||
import "../../elements/forms/DeleteBulkForm";
|
import "../../elements/forms/DeleteBulkForm";
|
||||||
import "../../elements/forms/ModalForm";
|
import "../../elements/forms/ModalForm";
|
||||||
|
@ -52,6 +55,7 @@ export class ApplicationListPage extends TablePage<Application> {
|
||||||
static get styles(): CSSResult[] {
|
static get styles(): CSSResult[] {
|
||||||
return super.styles.concat(
|
return super.styles.concat(
|
||||||
PFAvatar,
|
PFAvatar,
|
||||||
|
PFCard,
|
||||||
css`
|
css`
|
||||||
tr td:first-child {
|
tr td:first-child {
|
||||||
width: auto;
|
width: auto;
|
||||||
|
@ -74,6 +78,17 @@ export class ApplicationListPage extends TablePage<Application> {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderSidebarAfter(): TemplateResult {
|
||||||
|
return html`<div class="pf-c-sidebar__panel pf-m-width-25">
|
||||||
|
<div class="pf-c-card">
|
||||||
|
<div class="pf-c-card__title">${t`About applications`}</div>
|
||||||
|
<div class="pf-c-card__body">
|
||||||
|
<ak-markdown .md=${MDApplication}></ak-markdown>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>`;
|
||||||
|
}
|
||||||
|
|
||||||
renderToolbarSelected(): TemplateResult {
|
renderToolbarSelected(): TemplateResult {
|
||||||
const disabled = this.selectedElements.length < 1;
|
const disabled = this.selectedElements.length < 1;
|
||||||
return html`<ak-forms-delete-bulk
|
return html`<ak-forms-delete-bulk
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: Applications
|
||||||
slug: /applications
|
slug: /applications
|
||||||
---
|
---
|
||||||
|
|
||||||
Applications in authentik are the counterpart of providers. They exist in a 1-to-1 relationship, each application needs a provider and every provider can be used with one application.
|
Applications in authentik are the other half of providers. They exist in a 1-to-1 relationship, each application needs a provider and every provider can be used with one application.
|
||||||
|
|
||||||
Applications are used to configure and separate the authorization / access control and the appearance in the Library page.
|
Applications are used to configure and separate the authorization / access control and the appearance in the Library page.
|
||||||
|
|
||||||
|
@ -15,23 +15,23 @@ By default, all users can access applications when no policies are bound.
|
||||||
|
|
||||||
When multiple policies/groups/users are attached, you can configure the *Policy engine mode* to either
|
When multiple policies/groups/users are attached, you can configure the *Policy engine mode* to either
|
||||||
|
|
||||||
- Require users to pass all bindings/be member of all groups (ALL), or
|
- Require users to pass all bindings/be member of all groups (ALL), or
|
||||||
- Require users to pass either binding/be member of either group (ANY)
|
- Require users to pass either binding/be member of either group (ANY)
|
||||||
|
|
||||||
## Appearance
|
## Appearance
|
||||||
|
|
||||||
The following aspects can be configured:
|
The following aspects can be configured:
|
||||||
|
|
||||||
- *Name*: This is the name shown for the application card
|
- *Name*: This is the name shown for the application card
|
||||||
- *Launch URL*: The URL that is opened when a user clicks on the application. When left empty, authentik tries to guess it based on the provider
|
- *Launch URL*: The URL that is opened when a user clicks on the application. When left empty, authentik tries to guess it based on the provider
|
||||||
- *Icon (URL)*: Optionally configure an Icon for the application
|
- *Icon (URL)*: Optionally configure an Icon for the application
|
||||||
- *Publisher*: Text shown below the application
|
- *Publisher*: Text shown below the application
|
||||||
- *Description*: Subtext shown on the application card below the publisher
|
- *Description*: Subtext shown on the application card below the publisher
|
||||||
|
|
||||||
Applications are shown to users when
|
Applications are shown to users when
|
||||||
|
|
||||||
- The user has access defined via policies (or the application has no policies bound)
|
- The user has access defined via policies (or the application has no policies bound)
|
||||||
- A Valid Launch URL is configured/could be guessed, this consists of URLs starting with http:// and https://
|
- A Valid Launch URL is configured/could be guessed, this consists of URLs starting with http:// and https://
|
||||||
|
|
||||||
|
|
||||||
#### Hiding applications
|
#### Hiding applications
|
||||||
|
|
Reference in New Issue