web/admin: show warnings above tab bar

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2021-11-10 10:05:35 +01:00
parent d1b9f1e6b8
commit 0a413fe21a
4 changed files with 604 additions and 604 deletions

View file

@ -76,8 +76,7 @@ export class LDAPProviderViewPage extends LitElement {
if (!this.provider) { if (!this.provider) {
return html``; return html``;
} }
return html`<ak-tabs> return html` ${this.provider?.assignedApplicationName
${this.provider?.assignedApplicationName
? html`` ? html``
: html`<div slot="header" class="pf-c-banner pf-m-warning"> : html`<div slot="header" class="pf-c-banner pf-m-warning">
${t`Warning: Provider is not used by an Application.`} ${t`Warning: Provider is not used by an Application.`}
@ -87,90 +86,91 @@ export class LDAPProviderViewPage extends LitElement {
${t`Warning: Provider is not used by any Outpost.`} ${t`Warning: Provider is not used by any Outpost.`}
</div>` </div>`
: html``} : html``}
<section <ak-tabs>
slot="page-overview" <section
data-tab-title="${t`Overview`}" slot="page-overview"
class="pf-c-page__main-section pf-m-no-padding-mobile" data-tab-title="${t`Overview`}"
> class="pf-c-page__main-section pf-m-no-padding-mobile"
<div class="pf-u-display-flex pf-u-justify-content-center"> >
<div class="pf-u-w-75"> <div class="pf-u-display-flex pf-u-justify-content-center">
<div class="pf-c-card"> <div class="pf-u-w-75">
<div class="pf-c-card__body"> <div class="pf-c-card">
<dl class="pf-c-description-list pf-m-3-col-on-lg"> <div class="pf-c-card__body">
<div class="pf-c-description-list__group"> <dl class="pf-c-description-list pf-m-3-col-on-lg">
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`Name`}</span <span class="pf-c-description-list__text"
> >${t`Name`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
${this.provider.name} <div class="pf-c-description-list__text">
</div> ${this.provider.name}
</dd> </div>
</div> </dd>
<div class="pf-c-description-list__group"> </div>
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`Assigned to application`}</span <span class="pf-c-description-list__text"
> >${t`Assigned to application`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
<ak-provider-related-application <div class="pf-c-description-list__text">
.provider=${this.provider} <ak-provider-related-application
></ak-provider-related-application> .provider=${this.provider}
</div> ></ak-provider-related-application>
</dd> </div>
</div> </dd>
<div class="pf-c-description-list__group"> </div>
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`Base DN`}</span <span class="pf-c-description-list__text"
> >${t`Base DN`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
${this.provider.baseDn} <div class="pf-c-description-list__text">
</div> ${this.provider.baseDn}
</dd> </div>
</div> </dd>
</dl> </div>
</div> </dl>
<div class="pf-c-card__footer"> </div>
<ak-forms-modal> <div class="pf-c-card__footer">
<span slot="submit"> ${t`Update`} </span> <ak-forms-modal>
<span slot="header"> ${t`Update LDAP Provider`} </span> <span slot="submit"> ${t`Update`} </span>
<ak-provider-ldap-form <span slot="header"> ${t`Update LDAP Provider`} </span>
slot="form" <ak-provider-ldap-form
.instancePk=${this.provider.pk} slot="form"
> .instancePk=${this.provider.pk}
</ak-provider-ldap-form> >
<button slot="trigger" class="pf-c-button pf-m-primary"> </ak-provider-ldap-form>
${t`Edit`} <button slot="trigger" class="pf-c-button pf-m-primary">
</button> ${t`Edit`}
</ak-forms-modal> </button>
</ak-forms-modal>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </section>
</section> <section
<section slot="page-changelog"
slot="page-changelog" data-tab-title="${t`Changelog`}"
data-tab-title="${t`Changelog`}" class="pf-c-page__main-section pf-m-no-padding-mobile"
class="pf-c-page__main-section pf-m-no-padding-mobile" >
> <div class="pf-c-card">
<div class="pf-c-card"> <div class="pf-c-card__body">
<div class="pf-c-card__body"> <ak-object-changelog
<ak-object-changelog targetModelPk=${this.provider.pk || ""}
targetModelPk=${this.provider.pk || ""} targetModelApp="authentik_providers_ldap"
targetModelApp="authentik_providers_ldap" targetModelName="LDAPProvider"
targetModelName="LDAPProvider" >
> </ak-object-changelog>
</ak-object-changelog> </div>
</div> </div>
</div> </section>
</section> </ak-tabs>`;
</ak-tabs>`;
} }
} }

View file

@ -85,233 +85,234 @@ export class OAuth2ProviderViewPage extends LitElement {
if (!this.provider) { if (!this.provider) {
return html``; return html``;
} }
return html`<ak-tabs> return html` ${this.provider?.assignedApplicationName
${this.provider?.assignedApplicationName
? html`` ? html``
: html`<div slot="header" class="pf-c-banner pf-m-warning"> : html`<div slot="header" class="pf-c-banner pf-m-warning">
${t`Warning: Provider is not used by an Application.`} ${t`Warning: Provider is not used by an Application.`}
</div>`} </div>`}<ak-tabs>
<section <section
slot="page-overview" slot="page-overview"
data-tab-title="${t`Overview`}" data-tab-title="${t`Overview`}"
class="pf-c-page__main-section pf-m-no-padding-mobile" class="pf-c-page__main-section pf-m-no-padding-mobile"
> >
<div class="pf-u-display-flex pf-u-justify-content-center"> <div class="pf-u-display-flex pf-u-justify-content-center">
<div class="pf-u-w-75"> <div class="pf-u-w-75">
<div class="pf-c-card"> <div class="pf-c-card">
<div class="pf-c-card__body"> <div class="pf-c-card__body">
<dl class="pf-c-description-list pf-m-2-col-on-lg"> <dl class="pf-c-description-list pf-m-2-col-on-lg">
<div class="pf-c-description-list__group"> <div class="pf-c-description-list__group">
<dt class="pf-c-description-list__term"> <dt class="pf-c-description-list__term">
<span class="pf-c-description-list__text" <span class="pf-c-description-list__text"
>${t`Name`}</span >${t`Name`}</span
> >
</dt> </dt>
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
${this.provider.name} ${this.provider.name}
</div> </div>
</dd> </dd>
</div> </div>
<div class="pf-c-description-list__group"> <div class="pf-c-description-list__group">
<dt class="pf-c-description-list__term"> <dt class="pf-c-description-list__term">
<span class="pf-c-description-list__text" <span class="pf-c-description-list__text"
>${t`Assigned to application`}</span >${t`Assigned to application`}</span
> >
</dt> </dt>
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
<ak-provider-related-application <ak-provider-related-application
.provider=${this.provider} .provider=${this.provider}
></ak-provider-related-application> ></ak-provider-related-application>
</div> </div>
</dd> </dd>
</div> </div>
<div class="pf-c-description-list__group"> <div class="pf-c-description-list__group">
<dt class="pf-c-description-list__term"> <dt class="pf-c-description-list__term">
<span class="pf-c-description-list__text" <span class="pf-c-description-list__text"
>${t`Client type`}</span >${t`Client type`}</span
> >
</dt> </dt>
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
${convertToTitle(this.provider.clientType || "")} ${convertToTitle(
</div> this.provider.clientType || "",
</dd> )}
</div> </div>
<div class="pf-c-description-list__group"> </dd>
<dt class="pf-c-description-list__term"> </div>
<span class="pf-c-description-list__text" <div class="pf-c-description-list__group">
>${t`Client ID`}</span <dt class="pf-c-description-list__term">
> <span class="pf-c-description-list__text"
</dt> >${t`Client ID`}</span
<dd class="pf-c-description-list__description"> >
<div class="pf-c-description-list__text"> </dt>
${this.provider.clientId} <dd class="pf-c-description-list__description">
</div> <div class="pf-c-description-list__text">
</dd> ${this.provider.clientId}
</div> </div>
<div class="pf-c-description-list__group"> </dd>
<dt class="pf-c-description-list__term"> </div>
<span class="pf-c-description-list__text" <div class="pf-c-description-list__group">
>${t`Redirect URIs`}</span <dt class="pf-c-description-list__term">
> <span class="pf-c-description-list__text"
</dt> >${t`Redirect URIs`}</span
<dd class="pf-c-description-list__description"> >
<div class="pf-c-description-list__text"> </dt>
${this.provider.redirectUris} <dd class="pf-c-description-list__description">
</div> <div class="pf-c-description-list__text">
</dd> ${this.provider.redirectUris}
</div> </div>
</dl> </dd>
</div> </div>
<div class="pf-c-card__footer"> </dl>
<ak-forms-modal> </div>
<span slot="submit"> ${t`Update`} </span> <div class="pf-c-card__footer">
<span slot="header"> ${t`Update OAuth2 Provider`} </span> <ak-forms-modal>
<ak-provider-oauth2-form <span slot="submit"> ${t`Update`} </span>
slot="form" <span slot="header"> ${t`Update OAuth2 Provider`} </span>
.instancePk=${this.provider.pk || 0} <ak-provider-oauth2-form
> slot="form"
</ak-provider-oauth2-form> .instancePk=${this.provider.pk || 0}
<button slot="trigger" class="pf-c-button pf-m-primary"> >
${t`Edit`} </ak-provider-oauth2-form>
</button> <button slot="trigger" class="pf-c-button pf-m-primary">
</ak-forms-modal> ${t`Edit`}
</button>
</ak-forms-modal>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </section>
</section> <section
<section slot="page-changelog"
slot="page-changelog" data-tab-title="${t`Changelog`}"
data-tab-title="${t`Changelog`}" class="pf-c-page__main-section pf-m-no-padding-mobile"
class="pf-c-page__main-section pf-m-no-padding-mobile" >
> <div class="pf-c-card">
<div class="pf-c-card"> <div class="pf-c-card__body">
<div class="pf-c-card__body"> <ak-object-changelog
<ak-object-changelog targetModelPk=${this.provider.pk || ""}
targetModelPk=${this.provider.pk || ""} targetModelApp="authentik_providers_oauth2"
targetModelApp="authentik_providers_oauth2" targetModelName="oauth2provider"
targetModelName="oauth2provider" >
> </ak-object-changelog>
</ak-object-changelog> </div>
</div> </div>
</div> </section>
</section> <section
<section slot="page-metadata"
slot="page-metadata" data-tab-title="${t`Metadata`}"
data-tab-title="${t`Metadata`}" class="pf-c-page__main-section pf-m-no-padding-mobile"
class="pf-c-page__main-section pf-m-no-padding-mobile" >
> <div class="pf-u-display-flex pf-u-justify-content-center">
<div class="pf-u-display-flex pf-u-justify-content-center"> <div class="pf-u-w-75">
<div class="pf-u-w-75"> <div class="pf-c-card">
<div class="pf-c-card"> <div class="pf-c-card__body">
<div class="pf-c-card__body"> <form class="pf-c-form">
<form class="pf-c-form"> <div class="pf-c-form__group">
<div class="pf-c-form__group"> <label
<label class="pf-c-form__label"
class="pf-c-form__label" for="help-text-simple-form-name"
for="help-text-simple-form-name"
>
<span class="pf-c-form__label-text"
>${t`OpenID Configuration URL`}</span
> >
</label> <span class="pf-c-form__label-text"
<input >${t`OpenID Configuration URL`}</span
class="pf-c-form-control" >
readonly </label>
type="text" <input
value="${this.providerUrls?.providerInfo || t`-`}" class="pf-c-form-control"
/> readonly
</div> type="text"
<div class="pf-c-form__group"> value="${this.providerUrls?.providerInfo || t`-`}"
<label />
class="pf-c-form__label" </div>
for="help-text-simple-form-name" <div class="pf-c-form__group">
> <label
<span class="pf-c-form__label-text" class="pf-c-form__label"
>${t`OpenID Configuration Issuer`}</span for="help-text-simple-form-name"
> >
</label> <span class="pf-c-form__label-text"
<input >${t`OpenID Configuration Issuer`}</span
class="pf-c-form-control" >
readonly </label>
type="text" <input
value="${this.providerUrls?.issuer || t`-`}" class="pf-c-form-control"
/> readonly
</div> type="text"
<hr /> value="${this.providerUrls?.issuer || t`-`}"
<div class="pf-c-form__group"> />
<label </div>
class="pf-c-form__label" <hr />
for="help-text-simple-form-name" <div class="pf-c-form__group">
> <label
<span class="pf-c-form__label-text" class="pf-c-form__label"
>${t`Authorize URL`}</span for="help-text-simple-form-name"
> >
</label> <span class="pf-c-form__label-text"
<input >${t`Authorize URL`}</span
class="pf-c-form-control" >
readonly </label>
type="text" <input
value="${this.providerUrls?.authorize || t`-`}" class="pf-c-form-control"
/> readonly
</div> type="text"
<div class="pf-c-form__group"> value="${this.providerUrls?.authorize || t`-`}"
<label />
class="pf-c-form__label" </div>
for="help-text-simple-form-name" <div class="pf-c-form__group">
> <label
<span class="pf-c-form__label-text" class="pf-c-form__label"
>${t`Token URL`}</span for="help-text-simple-form-name"
> >
</label> <span class="pf-c-form__label-text"
<input >${t`Token URL`}</span
class="pf-c-form-control" >
readonly </label>
type="text" <input
value="${this.providerUrls?.token || t`-`}" class="pf-c-form-control"
/> readonly
</div> type="text"
<div class="pf-c-form__group"> value="${this.providerUrls?.token || t`-`}"
<label />
class="pf-c-form__label" </div>
for="help-text-simple-form-name" <div class="pf-c-form__group">
> <label
<span class="pf-c-form__label-text" class="pf-c-form__label"
>${t`Userinfo URL`}</span for="help-text-simple-form-name"
> >
</label> <span class="pf-c-form__label-text"
<input >${t`Userinfo URL`}</span
class="pf-c-form-control" >
readonly </label>
type="text" <input
value="${this.providerUrls?.userInfo || t`-`}" class="pf-c-form-control"
/> readonly
</div> type="text"
<div class="pf-c-form__group"> value="${this.providerUrls?.userInfo || t`-`}"
<label />
class="pf-c-form__label" </div>
for="help-text-simple-form-name" <div class="pf-c-form__group">
> <label
<span class="pf-c-form__label-text" class="pf-c-form__label"
>${t`Logout URL`}</span for="help-text-simple-form-name"
> >
</label> <span class="pf-c-form__label-text"
<input >${t`Logout URL`}</span
class="pf-c-form-control" >
readonly </label>
type="text" <input
value="${this.providerUrls?.logout || t`-`}" class="pf-c-form-control"
/> readonly
</div> type="text"
</form> value="${this.providerUrls?.logout || t`-`}"
/>
</div>
</form>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </section>
</section> </ak-tabs>`;
</ak-tabs>`;
} }
} }

View file

@ -73,8 +73,7 @@ export class ProxyProviderViewPage extends LitElement {
if (!this.provider) { if (!this.provider) {
return html``; return html``;
} }
return html` <ak-tabs> return html` ${this.provider?.assignedApplicationName
${this.provider?.assignedApplicationName
? html`` ? html``
: html`<div slot="header" class="pf-c-banner pf-m-warning"> : html`<div slot="header" class="pf-c-banner pf-m-warning">
${t`Warning: Provider is not used by an Application.`} ${t`Warning: Provider is not used by an Application.`}
@ -84,165 +83,166 @@ export class ProxyProviderViewPage extends LitElement {
${t`Warning: Provider is not used by any Outpost.`} ${t`Warning: Provider is not used by any Outpost.`}
</div>` </div>`
: html``} : html``}
<section <ak-tabs>
slot="page-overview" <section
data-tab-title="${t`Overview`}" slot="page-overview"
class="pf-c-page__main-section pf-m-no-padding-mobile" data-tab-title="${t`Overview`}"
> class="pf-c-page__main-section pf-m-no-padding-mobile"
<div class="pf-l-grid pf-m-gutter"> >
<div class="pf-l-grid__item pf-m-6-col"> <div class="pf-l-grid pf-m-gutter">
<div class="pf-c-card"> <div class="pf-l-grid__item pf-m-6-col">
<div class="pf-c-card__body"> <div class="pf-c-card">
<dl class="pf-c-description-list pf-m-3-col-on-lg"> <div class="pf-c-card__body">
<div class="pf-c-description-list__group"> <dl class="pf-c-description-list pf-m-3-col-on-lg">
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`Name`}</span <span class="pf-c-description-list__text"
> >${t`Name`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
${this.provider.name} <div class="pf-c-description-list__text">
</div> ${this.provider.name}
</dd> </div>
</div> </dd>
<div class="pf-c-description-list__group"> </div>
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`Assigned to application`}</span <span class="pf-c-description-list__text"
> >${t`Assigned to application`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
<ak-provider-related-application <div class="pf-c-description-list__text">
.provider=${this.provider} <ak-provider-related-application
></ak-provider-related-application> .provider=${this.provider}
</div> ></ak-provider-related-application>
</dd> </div>
</div> </dd>
<div class="pf-c-description-list__group"> </div>
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`Internal Host`}</span <span class="pf-c-description-list__text"
> >${t`Internal Host`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
${this.provider.internalHost} <div class="pf-c-description-list__text">
</div> ${this.provider.internalHost}
</dd> </div>
</div> </dd>
<div class="pf-c-description-list__group"> </div>
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`External Host`}</span <span class="pf-c-description-list__text"
> >${t`External Host`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
${this.provider.externalHost} <div class="pf-c-description-list__text">
</div> ${this.provider.externalHost}
</dd> </div>
</div> </dd>
<div class="pf-c-description-list__group"> </div>
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`Basic-Auth`}</span <span class="pf-c-description-list__text"
> >${t`Basic-Auth`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
${this.provider.basicAuthEnabled <div class="pf-c-description-list__text">
? html`<span ${this.provider.basicAuthEnabled
class="pf-c-button__icon pf-m-start" ? html`<span
> class="pf-c-button__icon pf-m-start"
<i >
class="fas fa-check-circle" <i
aria-hidden="true" class="fas fa-check-circle"
></i aria-hidden="true"
>&nbsp; </span ></i
>${t`Yes`}` >&nbsp; </span
: html`<span >${t`Yes`}`
class="pf-c-button__icon pf-m-start" : html`<span
> class="pf-c-button__icon pf-m-start"
<i >
class="fas fa-times-circle" <i
aria-hidden="true" class="fas fa-times-circle"
></i aria-hidden="true"
>&nbsp; </span ></i
>${t`No`}`} >&nbsp; </span
</div> >${t`No`}`}
</dd> </div>
</div> </dd>
<div class="pf-c-description-list__group"> </div>
<dt class="pf-c-description-list__term"> <div class="pf-c-description-list__group">
<span class="pf-c-description-list__text" <dt class="pf-c-description-list__term">
>${t`Mode`}</span <span class="pf-c-description-list__text"
> >${t`Mode`}</span
</dt> >
<dd class="pf-c-description-list__description"> </dt>
<div class="pf-c-description-list__text"> <dd class="pf-c-description-list__description">
${convertToTitle(this.provider.mode || "")} <div class="pf-c-description-list__text">
</div> ${convertToTitle(this.provider.mode || "")}
</dd> </div>
</div> </dd>
</dl> </div>
</dl>
</div>
<div class="pf-c-card__footer">
<ak-forms-modal>
<span slot="submit"> ${t`Update`} </span>
<span slot="header"> ${t`Update Proxy Provider`} </span>
<ak-provider-proxy-form
slot="form"
.instancePk=${this.provider.pk || 0}
>
</ak-provider-proxy-form>
<button slot="trigger" class="pf-c-button pf-m-primary">
${t`Edit`}
</button>
</ak-forms-modal>
</div>
</div> </div>
<div class="pf-c-card__footer"> </div>
<ak-forms-modal> <div class="pf-l-grid__item pf-m-6-col">
<span slot="submit"> ${t`Update`} </span> <div class="pf-c-card">
<span slot="header"> ${t`Update Proxy Provider`} </span> <div class="pf-c-card__title">${t`Protocol Settings`}</div>
<ak-provider-proxy-form <div class="pf-c-card__body">
slot="form" <dl class="pf-c-description-list pf-m-3-col-on-lg">
.instancePk=${this.provider.pk || 0} <div class="pf-c-description-list__group">
> <dt class="pf-c-description-list__term">
</ak-provider-proxy-form> <span class="pf-c-description-list__text"
<button slot="trigger" class="pf-c-button pf-m-primary"> >${t`Allowed Redirect URIs`}</span
${t`Edit`} >
</button> </dt>
</ak-forms-modal> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text">
${this.provider.redirectUris}
</div>
</dd>
</div>
</dl>
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="pf-l-grid__item pf-m-6-col"> </section>
<div class="pf-c-card"> <section
<div class="pf-c-card__title">${t`Protocol Settings`}</div> slot="page-changelog"
<div class="pf-c-card__body"> data-tab-title="${t`Changelog`}"
<dl class="pf-c-description-list pf-m-3-col-on-lg"> class="pf-c-page__main-section pf-m-no-padding-mobile"
<div class="pf-c-description-list__group"> >
<dt class="pf-c-description-list__term"> <div class="pf-c-card">
<span class="pf-c-description-list__text" <div class="pf-c-card__body">
>${t`Allowed Redirect URIs`}</span <ak-object-changelog
> targetModelPk=${this.provider.pk || ""}
</dt> targetModelApp="authentik_providers_proxy"
<dd class="pf-c-description-list__description"> targetModelName="proxyprovider"
<div class="pf-c-description-list__text"> >
${this.provider.redirectUris} </ak-object-changelog>
</div>
</dd>
</div>
</dl>
</div>
</div> </div>
</div> </div>
</div> </section>
</section> </ak-tabs>`;
<section
slot="page-changelog"
data-tab-title="${t`Changelog`}"
class="pf-c-page__main-section pf-m-no-padding-mobile"
>
<div class="pf-c-card">
<div class="pf-c-card__body">
<ak-object-changelog
targetModelPk=${this.provider.pk || ""}
targetModelApp="authentik_providers_proxy"
targetModelName="proxyprovider"
>
</ak-object-changelog>
</div>
</div>
</section>
</ak-tabs>`;
} }
} }

View file

@ -79,168 +79,167 @@ export class SAMLProviderViewPage extends LitElement {
if (!this.provider) { if (!this.provider) {
return html``; return html``;
} }
return html`<ak-tabs> return html` ${this.provider?.assignedApplicationName
${this.provider?.assignedApplicationName
? html`` ? html``
: html`<div slot="header" class="pf-c-banner pf-m-warning"> : html`<div slot="header" class="pf-c-banner pf-m-warning">
${t`Warning: Provider is not used by an Application.`} ${t`Warning: Provider is not used by an Application.`}
</div>`} </div>`}<ak-tabs>
<section <section
slot="page-overview" slot="page-overview"
data-tab-title="${t`Overview`}" data-tab-title="${t`Overview`}"
class="pf-c-page__main-section pf-m-no-padding-mobile" class="pf-c-page__main-section pf-m-no-padding-mobile"
> >
<div class="pf-u-display-flex pf-u-justify-content-center"> <div class="pf-u-display-flex pf-u-justify-content-center">
<div class="pf-u-w-75"> <div class="pf-u-w-75">
<div class="pf-c-card"> <div class="pf-c-card">
<div class="pf-c-card__body"> <div class="pf-c-card__body">
<dl class="pf-c-description-list pf-m-3-col-on-lg"> <dl class="pf-c-description-list pf-m-3-col-on-lg">
<div class="pf-c-description-list__group"> <div class="pf-c-description-list__group">
<dt class="pf-c-description-list__term"> <dt class="pf-c-description-list__term">
<span class="pf-c-description-list__text" <span class="pf-c-description-list__text"
>${t`Name`}</span >${t`Name`}</span
> >
</dt> </dt>
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
${this.provider.name} ${this.provider.name}
</div> </div>
</dd> </dd>
</div> </div>
<div class="pf-c-description-list__group"> <div class="pf-c-description-list__group">
<dt class="pf-c-description-list__term"> <dt class="pf-c-description-list__term">
<span class="pf-c-description-list__text" <span class="pf-c-description-list__text"
>${t`Assigned to application`}</span >${t`Assigned to application`}</span
> >
</dt> </dt>
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
<ak-provider-related-application <ak-provider-related-application
.provider=${this.provider} .provider=${this.provider}
></ak-provider-related-application> ></ak-provider-related-application>
</div> </div>
</dd> </dd>
</div> </div>
<div class="pf-c-description-list__group"> <div class="pf-c-description-list__group">
<dt class="pf-c-description-list__term"> <dt class="pf-c-description-list__term">
<span class="pf-c-description-list__text" <span class="pf-c-description-list__text"
>${t`ACS URL`}</span >${t`ACS URL`}</span
> >
</dt> </dt>
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
${this.provider.acsUrl} ${this.provider.acsUrl}
</div> </div>
</dd> </dd>
</div> </div>
<div class="pf-c-description-list__group"> <div class="pf-c-description-list__group">
<dt class="pf-c-description-list__term"> <dt class="pf-c-description-list__term">
<span class="pf-c-description-list__text" <span class="pf-c-description-list__text"
>${t`Audience`}</span >${t`Audience`}</span
> >
</dt> </dt>
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
${this.provider.audience || "-"} ${this.provider.audience || "-"}
</div> </div>
</dd> </dd>
</div> </div>
<div class="pf-c-description-list__group"> <div class="pf-c-description-list__group">
<dt class="pf-c-description-list__term"> <dt class="pf-c-description-list__term">
<span class="pf-c-description-list__text" <span class="pf-c-description-list__text"
>${t`Issuer`}</span >${t`Issuer`}</span
> >
</dt> </dt>
<dd class="pf-c-description-list__description"> <dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text"> <div class="pf-c-description-list__text">
${this.provider.issuer} ${this.provider.issuer}
</div> </div>
</dd> </dd>
</div> </div>
</dl> </dl>
</div> </div>
<div class="pf-c-card__footer"> <div class="pf-c-card__footer">
<ak-forms-modal> <ak-forms-modal>
<span slot="submit"> ${t`Update`} </span> <span slot="submit"> ${t`Update`} </span>
<span slot="header"> ${t`Update SAML Provider`} </span> <span slot="header"> ${t`Update SAML Provider`} </span>
<ak-provider-saml-form <ak-provider-saml-form
slot="form" slot="form"
.instancePk=${this.provider.pk || 0} .instancePk=${this.provider.pk || 0}
> >
</ak-provider-saml-form> </ak-provider-saml-form>
<button slot="trigger" class="pf-c-button pf-m-primary"> <button slot="trigger" class="pf-c-button pf-m-primary">
${t`Edit`} ${t`Edit`}
</button> </button>
</ak-forms-modal> </ak-forms-modal>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </section>
</section> <section
<section slot="page-changelog"
slot="page-changelog" data-tab-title="${t`Changelog`}"
data-tab-title="${t`Changelog`}" class="pf-c-page__main-section pf-m-no-padding-mobile"
class="pf-c-page__main-section pf-m-no-padding-mobile" >
> <div class="pf-c-card">
<div class="pf-c-card"> <div class="pf-c-card__body">
<div class="pf-c-card__body"> <ak-object-changelog
<ak-object-changelog targetModelPk=${this.provider.pk || ""}
targetModelPk=${this.provider.pk || ""} targetModelApp="authentik_providers_saml"
targetModelApp="authentik_providers_saml" targetModelName="samlprovider"
targetModelName="samlprovider" >
> </ak-object-changelog>
</ak-object-changelog> </div>
</div> </div>
</div> </section>
</section> ${this.provider.assignedApplicationName
${this.provider.assignedApplicationName ? html` <section
? html` <section slot="page-metadata"
slot="page-metadata" data-tab-title="${t`Metadata`}"
data-tab-title="${t`Metadata`}" class="pf-c-page__main-section pf-m-no-padding-mobile"
class="pf-c-page__main-section pf-m-no-padding-mobile" >
> <div class="pf-u-display-flex pf-u-justify-content-center">
<div class="pf-u-display-flex pf-u-justify-content-center"> <div class="pf-u-w-75">
<div class="pf-u-w-75"> <div class="pf-c-card">
<div class="pf-c-card"> <div class="pf-c-card__body">
<div class="pf-c-card__body"> ${until(
${until( new ProvidersApi(DEFAULT_CONFIG)
new ProvidersApi(DEFAULT_CONFIG) .providersSamlMetadataRetrieve({
.providersSamlMetadataRetrieve({ id: this.provider.pk || 0,
id: this.provider.pk || 0, })
}) .then((m) => {
.then((m) => { return html`<ak-codemirror
return html`<ak-codemirror mode="xml"
mode="xml" ?readOnly=${true}
?readOnly=${true} value="${ifDefined(m.metadata)}"
value="${ifDefined(m.metadata)}" ></ak-codemirror>`;
></ak-codemirror>`; }),
}), )}
)} </div>
</div> <div class="pf-c-card__footer">
<div class="pf-c-card__footer"> <a
<a class="pf-c-button pf-m-primary"
class="pf-c-button pf-m-primary" target="_blank"
target="_blank" href=${this.provider.metadataDownloadUrl}
href=${this.provider.metadataDownloadUrl} >
> ${t`Download`}
${t`Download`} </a>
</a> <ak-action-button
<ak-action-button .apiRequest=${() => {
.apiRequest=${() => { const fullUrl =
const fullUrl = window.location.origin +
window.location.origin + this.provider?.metadataDownloadUrl;
this.provider?.metadataDownloadUrl; return navigator.clipboard.writeText(fullUrl);
return navigator.clipboard.writeText(fullUrl); }}
}} >
> ${t`Copy download URL`}
${t`Copy download URL`} </ak-action-button>
</ak-action-button> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </section>`
</section>` : html``}
: html``} </ak-tabs>`;
</ak-tabs>`;
} }
} }