* sources/ldap: add check command to verify ldap connectivity Signed-off-by: Jens Langhammer <jens@goauthentik.io> * default to checking all sources Signed-off-by: Jens Langhammer <jens@goauthentik.io> * start adding an API for ldap connectivity Signed-off-by: Jens Langhammer <jens@goauthentik.io> * add webui for ldap source connection status Signed-off-by: Jens Langhammer <jens@goauthentik.io> * better show sync status, clear previous tasks Signed-off-by: Jens Langhammer <jens@goauthentik.io> * set timeout on redis lock for ldap sync Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix py lint Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix web lint Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io>
51 lines
1.8 KiB
TypeScript
51 lines
1.8 KiB
TypeScript
import { AKElement } from "@goauthentik/app/elements/Base";
|
|
import "@patternfly/elements/pf-tooltip/pf-tooltip.js";
|
|
|
|
import { msg } from "@lit/localize";
|
|
import { CSSResult, TemplateResult, html } from "lit";
|
|
import { customElement, property } from "lit/decorators.js";
|
|
|
|
import PFList from "@patternfly/patternfly/components/List/list.css";
|
|
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
|
|
|
@customElement("ak-source-ldap-connectivity")
|
|
export class LDAPSourceConnectivity extends AKElement {
|
|
@property()
|
|
connectivity?: {
|
|
[key: string]: {
|
|
[key: string]: string;
|
|
};
|
|
};
|
|
|
|
static get styles(): CSSResult[] {
|
|
return [PFBase, PFList];
|
|
}
|
|
|
|
render(): TemplateResult {
|
|
if (!this.connectivity) {
|
|
return html``;
|
|
}
|
|
return html`<ul class="pf-c-list">
|
|
${Object.keys(this.connectivity).map((serverKey) => {
|
|
let serverLabel = html`${serverKey}`;
|
|
if (serverKey === "__all__") {
|
|
serverLabel = html`<b>${msg("Global status")}</b>`;
|
|
}
|
|
const server = this.connectivity![serverKey];
|
|
const content = html`${serverLabel}: ${server.status}`;
|
|
let tooltip = html`${content}`;
|
|
if (server.status === "ok") {
|
|
tooltip = html`<pf-tooltip position="top">
|
|
<ul slot="content" class="pf-c-list">
|
|
<li>${msg("Vendor")}: ${server.vendor}</li>
|
|
<li>${msg("Version")}: ${server.version}</li>
|
|
</ul>
|
|
${content}
|
|
</pf-tooltip>`;
|
|
}
|
|
return html`<li>${tooltip}</li>`;
|
|
})}
|
|
</ul>`;
|
|
}
|
|
}
|